我的 C++ 不是很好,如果您在代码片段中看到可以更好的东西,请不吝赐教!
我正在以异步方式实现 winhttp。但我无法检索响应。我想不通。因为您应该能够一次解析整个响应。由于可能会发生多个并发请求,因此在全局变量中缓冲响应(标头+正文)不是要走的路。
如何检索 http get 请求的响应?或者,在新线程上执行 winhttp 同步是一个好习惯(所以主循环不会被阻塞,然后在完成后调用函数?):
void __stdcall cb(HINTERNET h, DWORD_PTR d, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength){
char* s=new char[1];
DWORD dwSize = 0;
if (dwInternetStatus==WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE){
MessageBoxA(0,s,"",0);
WinHttpQueryDataAvailable( h, &dwSize);
.....
}
}
主要是调用:
...winhttpopen...
WinHttpSetStatusCallback(request, (WINHTTP_STATUS_CALLBACK)whCallback,WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS,0);
...winhttpsend....