但是来自 MSDN(WinHTTP 中的身份验证)的示例会在 WinHttpReceiveResponse 之后检查此值。
乍一看,样本可能看起来像这样。但是,如果您仔细观察,该示例实际上会检查是否ERROR_WINHTTP_RESEND_REQUEST失败: WinHttpSendRequest() WinHttpReceiveResponse()
// 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;
如果WinHttpSendRequest()返回FALSE,调用WinHttpReceiveResponse()将被跳过并被GetLastError()检查ERROR_WINHTTP_RESEND_REQUEST。此代码在while循环内,因此该continue语句将导致循环的剩余部分被跳过,因此WinHttpSendRequest()将再次调用。
结论:样品与参考文件相符。