自己写了一个get 请求函数
函数如下:
int get(const char* host, const char* referer, const char* api, const char* parameters)
{
WSADATA WsaData;
WSAStartup(0x0101, &WsaData);
//初始化socket
struct hostent* host_addr = gethostbyname(host);
if (host_addr == NULL)
{
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;
}
//建立连接
if (connect(sock, (const struct sockaddr *)&sin, sizeof(sockaddr_in)) == -1)
{
return -101;
}
//初始化发送信息
char zj_send_str[2048] = { 0 };
char zj_content_referer[100];
//头信息
strcat_s(zj_send_str, "GET ");
strcat_s(zj_send_str, api);
strcat_s(zj_send_str, " HTTP/1.1\r\n");
strcat_s(zj_send_str, "Host: ");
strcat_s(zj_send_str, host);
strcat_s(zj_send_str, "\r\n");
sprintf_s(zj_content_referer, "Referer: %s\r\n", referer);
strcat_s(zj_send_str, zj_content_referer);
strcat_s(zj_send_str, "Connection: keep-alive\r\n");
strcat_s(zj_send_str, "Accept-Encoding: gzip, deflate\r\n");
strcat_s(zj_send_str, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n");
strcat_s(zj_send_str, "Accept-Language: zh-cn\r\n");
//内容信息
strcat_s(zj_send_str, "\r\n");
strcat_s(zj_send_str, parameters);
strcat_s(zj_send_str, "\r\n");
strcat_s(zj_send_str, "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n");
strcat_s(zj_send_str, "Connection: keep-alive\r\n");
strcat_s(zj_send_str, "Cache-Control: max-age=0\r\n");
strcat_s(zj_send_str, "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69
Safari/601.1\r\n");
if (send(sock, zj_send_str, strlen(zj_send_str), 0) == -1)
{
return -101;
}
//获取返回信息
memset(recv_str, 0, RECE_DATA_SIZE);
int sum = recv(sock, recv_str, RECE_DATA_SIZE, 0);
if (sum == -1)
{
return -101;
}
WSACleanup();
return 0;
}
调用如下:
ret = get("qianxiaoka.com", "aa0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4q4A6j5h3&6^5K9h3q4G2K9$3q4Q4x3X3g2U0L8$3#2Q4x3V1k6E0j5h3W2F1i4K6u0r3K9h3&6V1k6i4S2Q4x3X3g2Z5N6r3#2D9", "/quicktask/index.html","PHPSESSID=070htvaq285342e37rcsuh5du5; qxk_activecode=15636;
qxk_idfa=09C0CC60-50ED-470F-8362-931AFE4D5B36");
返回数据是:
HTTP/1.1 302 Moved
正常情况应该返回:
HTTP/1.1 200 OK
请问大家这个问题出在哪里???
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课