0
我不是很擅長C++,如果你看到代碼片段中可能更好的東西,請教育我!WinHTTP異步回調
我以異步方式實現winhttp。但我很難檢索響應。我無法弄清楚。因爲你應該能夠一次解析整個響應。由於可能發生多個concurent請求,因此緩衝全局變量中的響應(標頭+主體)不是一種好的方法。
如何檢索http獲取請求的響應?否則,它是一個很好的做法,在一個新的線程中執行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....
如果你有winhttp的經驗並且可以舉手:-) http://stackoverflow.com/questions/11577503/winhttp-used-in-async-mode-error-internet-cannot-connect-how-to -cleanly-close – Ghita 2012-07-23 10:14:27
WinHTTP **文檔中的**異步完成如何給出一個例子 - 除了異步回調以外,很有趣。 – 2017-02-21 16:10:31