zoukankan      html  css  js  c++  java
  • C socket post数据到url

    #define HOST_SERVER_IP "192.168.1.15"
    #define HOST_PORT      80
    
    int gsh_post_clients(const char* sn, const char* ip)
    {
        if (NULL == sn || NULL == ip)
        {
            return -1;
        }
    
        int iSocketId                = -1;
        int iDataLength            = 0;
        int iConnectId               = 1;
        char acHeader[BUFSIZ]        = "";
        char acRequestData[BUFSIZ] = "";
        char *pcRequestDataLength  = "";
        struct sockaddr_in stSocketAddr;
        char text[BUFSIZ];
    
        /*
        * 设定socket参数
        */
        iSocketId = socket(AF_INET, SOCK_STREAM, 0);
    
        if (-1 == iSocketId)
        {
            printf("socket is wrong!");
            return -1;
        }
    
        stSocketAddr.sin_family = AF_INET;
        stSocketAddr.sin_port     = htons(HOST_PORT);
        inet_aton(HOST_SERVER_IP, &stSocketAddr.sin_addr);
    
        /*
        * 组织发送到web服务器的信息
        */
        strcat(acRequestData, "sn=");
        strcat(acRequestData, sn);
        strcat(acRequestData, "&");
        strcat(acRequestData, "ip=");
        strcat(acRequestData, ip);
    
        pcRequestDataLength = (char *)malloc(128);
        iDataLength = strlen(acRequestData);
        sprintf(pcRequestDataLength, "%d", iDataLength);
    
        strcat(acHeader, "POST ");
        strcat(acHeader, "/api.php");
        strcat(acHeader, " HTTP/1.1
    ");
        strcat(acHeader, "Accept: */*
    ");
        strcat(acHeader, "Referer: http://");
        strcat(acHeader, HOST_SERVER_IP);
        strcat(acHeader, "/api.php
    ");
        strcat(acHeader, "Accept-Language: zh-cn
    ");
        strcat(acHeader, "Content-Type: application/x-www-form-urlencoded
    ");
        strcat(acHeader, "HOST: ");
        strcat(acHeader, HOST_SERVER_IP);
        strcat(acHeader, "
    ");
        strcat(acHeader, "Connection: Keep-Alive
    ");
        strcat(acHeader, "Content-Length: ");
        strcat(acHeader, pcRequestDataLength);
        strcat(acHeader, "
    
    ");                     //必须为 
    
    ,不能是 
    
        strcat(acHeader, acRequestData);
        strcat(acHeader, "
    
    ");
    
        /*
        * 连接到服务器,发送请求
        */
        iConnectId = connect(iSocketId,(struct sockaddr *)&stSocketAddr, sizeof(struct sockaddr_in));
    
        if (0 != iConnectId)
        {
            printf("connect is fail!");
            return -1;
        }
    
        if (strlen(acHeader) != send(iSocketId, acHeader, strlen(acHeader), 0))
        {
            printf("send data is fail!");
            return -1;
        }
    
        while(recv(iSocketId, text, BUFSIZ, 0) > 0)
        {
            printf("%s", text);
        }
    
        close(iSocketId);
        return 0;
    }
  • 相关阅读:
    Objective-C 在Categroy中创建属性(Property)
    iOS截屏
    iOS简易图片选择器 (图片可多选,仿微信)
    iOS 3D touch 使用技巧
    soap request by afnetworking2.X/3.X
    类似网易新闻 title栏 滚动时 文字放大&变色
    iOS 用collectionview 做的无限图片滚动 广告banner适用
    iOS WebP转换工具
    微博app中常用正则表达式
    python中property(lambda self: object())简单解释
  • 原文地址:https://www.cnblogs.com/linguoguo/p/4428511.html
Copyright © 2011-2022 走看看