异步模式下的WinHttpSendRequest不发送POST数据

时间:2013-07-26 18:19:04

标签: c++ post asynchronous winhttp

我在异步模式下通过WinHttpSendRequest发送POST数据时遇到问题。

在同步模式下:

WinHttpAddRequestHeaders(request_handles.at(handler_index), L"Content-Type:application/x-www-form-urlencoded", -1L, WINHTTP_ADDREQ_FLAG_ADD);
int rc = WinHttpSendRequest(request_handles.at(handler_index), WINHTTP_NO_ADDITIONAL_HEADERS, 0, (LPVOID)postData.c_str(), dataLen, dataLen, 0);

像魅力一样工作。我的服务器按照我的预期获取postData。

在异步模式下:

WINHTTP_STATUS_CALLBACK cb = WinHttpSetStatusCallback(request_handles.at(handler_index), httpReadCallback, WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR |
    WINHTTP_CALLBACK_STATUS_REDIRECT | WINHTTP_CALLBACK_STATUS_SECURE_FAILURE | WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE |
    WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED, NULL);
WinHttpAddRequestHeaders(request_handles.at(handler_index), L"Content-Type:application/x-www-form-urlencoded", -1L, WINHTTP_ADDREQ_FLAG_ADD);
 int rc = WinHttpSendRequest(request_handles.at(handler_index), WINHTTP_NO_ADDITIONAL_HEADERS, 0, (LPVOID)postData.c_str(), dataLen, dataLen, 0);

服务器收到POST请求,但没有数据正文。是什么给了什么?

0 个答案:

没有答案