私はC++があまり得意ではありません。コードフラグメントにもっと良いものがあれば、教えてください。
私はwinhttpを非同期的に実装しています。しかし、応答を取得するのに問題があります。私はそれを理解することはできません。応答全体を一度に解析できるはずだからです。複数の同時要求が発生する可能性があるため、応答(headers + body)をグローバル変数にバッファリングすることはできません。
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....