服务器接收到所有数据,但HttpSendRequest在客户端返回FALSE 12002
Server received all data but HttpSendRequest return FALSE 12002 in client
客户端通过HttpSendRequest
:向服务器发送一些数据
if (!HttpSendRequest(request.get(), NULL, 0,
const_cast<char *>(request_body.data()),
static_cast<DWORD>(request_body.size()))) {
// return false;
}
我的服务器接收到request_body
中的所有数据,然后发送响应:
char success_message[] =
"HTTP/1.1 200 OK" "n"
"Content-Type: text/xml; charset=utf-8" "n"
"Content-Length: 0" "n";
(我通过套接字发送此响应)但在客户端HttpSendRequest
块~10秒内,然后返回FALSE
,并从GetLastError().
返回错误12002
所以我的问题是:
- 我的回复邮件格式错误吗
HttpSendRequest
何时从阻塞返回
编辑1:这是来自客户端的请求,有更多的数据但不需要,我认为
POST / HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------------0000002900004823
User-Agent: Breakpad/1.0 (Windows)
Host: 127.0.0.1:1519
Content-Length: 437805
Cache-Control: no-cache
-----------------------------0000002900004823
Content-Disposition: form-data; name="channel"
-----------------------------0000002900004823
客户端超时是因为服务器没有发送格式正确的响应。阅读HTTP规范,RFC 2616,特别是第4节HTTP消息和第6节响应中的语法规则。
试试这个:
char success_message[] =
"HTTP/1.1 200 OK" "rn"
"Content-Type: text/xml; charset=utf-8" "rn"
"Content-Length: 0" "rn"
"rn";