HttpQueryInfo 不返回正确的 HTTP 状态码
#define WINVER _WIN32_WINNT_WINXP
#define _WIN32_WINNT WINVER
HINTERNET hInet=InternetOpen(TEXT("USERAGENT"), INTERNET_OPEN_TYPE_PRECONFIG, nullptr, nullptr, 0);
HINTERNET hHttp=InternetOpenUrl(hInet, TEXT("http://www.website.com/"), TEXT("Connection: close\r\n"), -1, INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_RELOAD, 0);
BYTE ab[1024];
DWORD dwIndex=0;
HttpQueryInfo(hHttp, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, ab, 1024, &dwIndex);
int iStatusCode=*reinterpret_cast<int*>(ab);
在 Win10 上使用 VS2017 的 XP 工具集编译(项目平台 x86,字符集 Unicode),在 XPSP3 及 Win8.1 上取得的 HTTP 状态码为 0,然而用
HTTP_QUERY_RAW_HEADERS_CRLF 取得的第一行确实是 HTTP/1.1 200 OK。在 Win10 上能正确取得状态码 200。求解。
(PS:没有 Windows SDK 开发论坛板块?)