POST /cgi-bin/do_login HTTP/1.1\r\n
在requests中无法定制,其余均一样,为何c++返回了认证结果,requests却返回了认证界面的html源码?
怀疑是包头第一行的问题,但我也无从下手
如果对c++中的sendpacket函数有疑问,这里贴出代码
```char* sendpacket(char* host_name, char* req)
{
SOCKET hsocket;
SOCKADDR_IN saServer;
WSADATA wsadata;
LPHOSTENT lphostent;
int nRet;
if (WSAStartup(MAKEWORD(2, 2), &wsadata))
printf("初始化SOCKET出错!");
lphostent = gethostbyname(host_name);
if (lphostent == NULL)
printf("lphostent为空!");
hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saServer.sin_family = AF_INET;
saServer.sin_port = htons(80);
saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
// 利用SOCKET连接
nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
if (nRet == SOCKET_ERROR)
{
printf("建立连接时出错!");
closesocket(hsocket);
return 0;
}
nRet = send(hsocket, req, strlen(req), 0);//发包
if (nRet == SOCKET_ERROR)
{
printf("发送数据包时出错!");
closesocket(hsocket);
}
char Dest[3000] = { 0 };
nRet = 1;
while (nRet > 0)
{
// 接收返回数据包
nRet = recv(hsocket, (LPSTR)Dest, sizeof(Dest), 0);
return Dest;
}
}