[CPP]View PlainCopy
- int cmyfunctionsdlg::request (char* hostname, char* API, char* parameters)
- {
- Wsadata Wsadata;
- WSAStartup (0x0101, &wsadata);
- //Initialize socket
- struct hostent* host_addr = gethostbyname (hostname);
- if (host_addr = = NULL)
- {
- cout<< "Unable to locate host" <<endl;
- return-103;
- }
- Sockaddr_in sin;
- sin.sin_family = af_inet;
- Sin.sin_port = htons ((unsigned short ) 80);
- SIN.SIN_ADDR.S_ADDR = * ((int*) *host_addr->h_addr_list);
- int sock = socket (af_inet, sock_stream, 0);
- if (sock = =-1)
- {
- return-100;
- }
- //Establish connection
- if (Connect (sock, (const struct sockaddr *) &sin, sizeof (sockaddr_in)) = =-1)
- {
- cout<< "Connect Failed" <<endl;
- return-101;
- }
- //Initialize Send message
- char send_str[2048] = {0};
- //Header information
- strcat (Send_str, "POST");
- Strcat (Send_str, API);
- strcat (Send_str, "http/1.1\r\n");
- strcat (Send_str, "Host:");
- strcat (SEND_STR, hostname);
- strcat (send_str, "\ r \ n");
- strcat (Send_str, "connection:keep-alive\r\n");
- Char content_header[100];
- sprintf (Content_header,"content-length:%d\r\n", strlen (parameters));
- strcat (Send_str, Content_header);
- strcat (Send_str, "cache-control:max-age=0\r\n");
- strcat (Send_str, "origin:http://www.hao123.com\r\n");
- strcat (Send_str, "user-agent:mozilla/5.0 (Windows NT 6.1) applewebkit/535.1 (khtml, like Gecko) chrome/15.0.849.0 Sa Fari/535.1\r\n ");
- strcat (Send_str, "content-type:application/x-www-form-urlencoded\r\n");
- strcat (Send_str, "accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n");
- strcat (Send_str, "referer:http://www.hao123.com/\r\n");
- strcat (Send_str, "accept-encoding:gzip,deflate,sdch\r\n");
- strcat (Send_str, "accept-language:zh-cn,zh;q=0.8\r\n");
- strcat (Send_str, "expect:100-continue\r\n");
- //Content Information
- strcat (send_str, "\ r \ n");
- strcat (send_str, parameters);
- if (send (sock, Send_str, strlen (SEND_STR), 0) = =-1)
- {
- cout<< "Send Failed" <<endl;
- return-101;
- }
- //Get return information
- char recv_str[4096] = {0};
- if (recv (sock, Recv_str, sizeof (RECV_STR), 0) = =-1)
- {
- cout<< "Recv failed" <<endl;
- return-101;
- }
- cout<<recv_str<<endl;
- WSACleanup ();
- return 0;
- }
Request ("www.xxxx.com", "http://www.xxxx.com/client/data.php", "{\" request\ ": \" userlogin\ ", \" Posts\ ": [{\" Loginname\ ": \" 123456\ ", \" password\ ": \" 7890\ "}]}");
http://blog.csdn.net/dingxz105090/article/details/41285149
C + + uses HTTP requests, pro-Test available, VS2008 compiled run through