Aber Proben von MSDN (Authentifizierung in WinHTTP) prüft, ob dieser Wert nach WinHttpReceiveResponse.
Auf den ersten Blick the sample kann so aussehen. Aber wenn man genau hinschaut, prüft die Probe tatsächlich für ERROR_WINHTTP_RESEND_REQUEST
wenn entwederWinHttpSendRequest()
oderWinHttpReceiveResponse()
versagt:
// Send a request.
bResults = WinHttpSendRequest(hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0,
WINHTTP_NO_REQUEST_DATA,
0,
0,
0);
// End the request.
if(bResults)
bResults = WinHttpReceiveResponse(hRequest, NULL);
// Resend the request in case of
// ERROR_WINHTTP_RESEND_REQUEST error.
if(!bResults && GetLastError() == ERROR_WINHTTP_RESEND_REQUEST)
continue;
Wenn WinHttpSendRequest()
kehrt FALSE
, wird der Anruf zu WinHttpReceiveResponse()
sprungen und GetLastError()
für ERROR_WINHTTP_RESEND_REQUEST
geprüft werden. Dieser Code befindet sich in einer while
-Schleife, sodass die continue
-Anweisung dazu führt, dass der verbleibende Teil der Schleife übersprungen wird, sodass WinHttpSendRequest()
erneut aufgerufen wird.
Schlussfolgerung: Die Probe stimmt mit der Referenzdokumentation überein.
Sie beziehen sich wahrscheinlich auf das Beispiel auf [diese Seite] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa383144 (v = vs.85) .aspx). Schau nochmal auf den Code. Die Prüfung auf 'ERROR_WINHTTP_RESEND_REQUEST' erfolgt, wenn 'WinHttpSendRequest()' oder 'WinHttpReceiveResponse()' fehlschlägt. – zett42