win32 http post 实现
来源:互联网 发布:淘宝开店流程图解2016 编辑:程序博客网 时间:2024/06/11 10:50
WIN32_LEAN_AND_MEAN 宏必须定义,否则会出现很多包含系统文件的错误。
size_t process_http(int sockfd, char *host, char *page, char *poststr){char sendline[MAXLINE + 1], recvline[MAXLINE + 1];size_t n;//sprintf(sendline,//"POST %s HTTP/1.1\r\n"//"Host: %s\r\n"//"Content-type: application/json\r\n"//"Content-length: %d\r\n\r\n"//"%s", page, host, strlen(poststr), poststr);sprintf(sendline,"POST %s HTTP/1.1\r\n""Progma: no-cache\r\n""Cach-control: no-cache\r\n""Host: %s\r\n""Origin: http://192.168.1.201\r\n""Content-type: application/json\r\n""Content-length: %d\r\n\r\n""%s", page, host, strlen(poststr), poststr);printf(sendline);send(sockfd, sendline, strlen(sendline),0);while ((n = recv(sockfd, recvline, MAXLINE, 0)) > 0) {recvline[n] = '\0';printf("\n%s", recvline);}return n;}封装http 请求头,发送、接收数据。int main(void){WSADATA wsaData;SOCKET sockfd = INVALID_SOCKET;struct addrinfo *result = NULL,*ptr = NULL,hints;int err;//********** You can change. Puy any values here *******/*char *hname = "souptonuts.sourceforge.net";char *page = "/chirico/test.php";char *poststr = "mode=login&user=test&password=test\r\n";*/err = WSAStartup(MAKEWORD(2, 2), &wsaData);if (err != 0) {printf("WSAStartup failed with error: %d\n", err);return 1;}ZeroMemory(&hints, sizeof(hints));hints.ai_family = AF_UNSPEC;hints.ai_socktype = SOCK_STREAM;hints.ai_protocol = IPPROTO_TCP;// Resolve the server address and porterr = getaddrinfo(hname, "80", &hints, &result);if (err != 0) {printf("getaddrinfo failed with error: %d\n", err);WSACleanup();return 1;}// Attempt to connect to an address until one succeedsfor (ptr = result; ptr != NULL; ptr = ptr->ai_next) {// Create a SOCKET for connecting to serversockfd = socket(ptr->ai_family, ptr->ai_socktype,ptr->ai_protocol);if (sockfd == INVALID_SOCKET) {printf("socket failed with error: %ld\n", WSAGetLastError());WSACleanup();return 1;}// Connect to server.err = connect(sockfd, ptr->ai_addr, (int)ptr->ai_addrlen);if (err == SOCKET_ERROR) {closesocket(sockfd);sockfd = INVALID_SOCKET;continue;}break;}if (err < 0){goto END;}process_http(sockfd, hname, page, poststr);END:closesocket(sockfd);WSACleanup();getchar();exit(0);}
阅读全文
0 0
- win32 http post 实现
- C++实现Http Post请求
- C++实现Http Post请求
- C++实现Http Post请求
- java实现http post请求
- Java实现HTTP POST方式
- java 实现http POST请求
- C#实现http协议GET、POST请求
- C#实现http协议GET、POST请求
- C#实现http协议GET、POST
- vc++ post http实现文件上传
- C# 实现http协议GET、POST请求
- 用CInternetSession实现HTTP POST登录
- 用CInternetSession实现HTTP POST登录
- Android 实现Http get 和post操作
- 实现HTTP-POST的Edit Action方法
- android http-post方法简单实现
- java实现http post方法发送数据
- redhat 配置本地yum源163yum源epel 源
- linux之软硬链接
- ListView与ViewPage的冲突
- webstorm gitignore配置
- POST实战JIRA登录接口
- win32 http post 实现
- 1025. 反转链表 (25)
- 网络实时流量监测工具iftop
- 设计模式之六大原则——单一职责原则(SRP)
- tcp连接的建立与终止
- 要认识嵌入式Linux,看这一篇就够了
- 学习springmvc的第十五天(springmvc自定义拦截器)
- G
- TF随笔-9