Как получить код состояния HTTP из запроса WinHttp?

эта страница на msdn содержит определения кодов состояния HTTP, предположительно используемых в WinHTTP. Есть ли способ получить код состояния HTTP из запроса, сделанного в WinHttp?

единственный способ, который я нашел, чтобы добраться до текста ответа, - это позвонить WinHttpQueryHeaders, который возвращает HTTP-ответ следующим образом:

HTTP/1.1 404 Not Found
Date: Wed, 28 May 2014 08:20:29 GMT
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0

должен ли я анализировать эту строку самостоятельно, чтобы получить код состояния, или есть какой-то способ, уже предоставленный WinHttp для этого?

1 ответов


используйте это для чтения кода состояния http (hRequest - дескриптор запроса).

DWORD dwStatusCode = 0;
DWORD dwSize = sizeof(dwStatusCode);

WinHttpQueryHeaders(hRequest, 
    WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, 
    WINHTTP_HEADER_NAME_BY_INDEX, 
    &dwStatusCode, &dwSize, WINHTTP_NO_HEADER_INDEX);