客户端通过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";
(我通过socket发送此响应)
但是在客户HttpSendRequest
阻止~10秒后返回FALSE
,错误12002
从GetLastError().
返回
所以我的问题是:
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
答案 0 :(得分:1)
客户端超时是因为您的服务器没有发送格式正确的响应。请阅读HTTP规范RFC 2616,特别是Section 4 HTTP Message和Section 6 Response以获取语法规则。
试试这个:
char success_message[] =
"HTTP/1.1 200 OK" "\r\n"
"Content-Type: text/xml; charset=utf-8" "\r\n"
"Content-Length: 0" "\r\n"
"\r\n";