gpt4 book ai didi

c++ - 使用套接字编程的奇怪 HTTP 响应

转载 作者:行者123 更新时间:2023-11-28 04:23:35 24 4
gpt4 key购买 nike

我一直在尝试使用套接字编程来实现持久化 HTTP。建立连接后,我开始按顺序请求每个对象。但是一旦我获得了第一个对象,我就开始收到第二个对象的奇怪 HTTP 响应(在 header 中)

sprintf(temp_buffer, "HEAD %s HTTP/1.1\r\n", objURL);
strcpy(req_buffer, temp_buffer);
sprintf(temp_buffer, "HOST: %s\r\n", host);
strcat(req_buffer, temp_buffer);
sprintf(temp_buffer, "\r\n");
strcat(req_buffer, temp_buffer);

if (send(sockId, req_buffer, strlen(req_buffer), 0) < 0)
{
printf("send failed\n");
return false;
}

char receiveBuffer[len];

int isRecvd = recv(sockId, receiveBuffer, sizeof(receiveBuffer), 0);

if (isRecvd < 0 )
{
cout << "Cant recieve !!" << endl;
return false;
}

//Now to extract info from the Response
cout << isRecvd<<"\n";
receiveBuffer[isRecvd] = '\0';
string response = receiveBuffer ;
cout<<"the response is "<<endl;
cout << response <<endl;

响应的 cout 语句给出如下内容:响应是������vѴ��3��p。

最佳答案

也许您没有展示完整的代码,但您是否有可能没有完整阅读第一个响应?服务器将为您提供内容长度或分块响应,您需要确定在响应完成之前要读取多少内容。如果您确实正在读取固定数量的字节 len,那么您认为您的第二个响应可能只是第一个的更多内容。希望对您有所帮助。

关于c++ - 使用套接字编程的奇怪 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com