服务器接收到所有数据,但HttpSendRequest在客户端返回FALSE 12002

Server received all data but HttpSendRequest return FALSE 12002 in client

本文关键字:HttpSendRequest 客户端 返回 12002 FALSE 数据 服务器      更新时间:2023-10-16

客户端通过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

所以我的问题是:

  1. 我的回复邮件格式错误吗
  2. 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";