我想从响应头查询 ETag 标头(当然ETag是HTTP标准,但它没有被定义为WinHttpQueryHeaders函数中的标志)。这是微软的example:
HRESULT ReadHeader(
__in HINTERNET requestHandle,
__in_z WCHAR* headerName,
__in ULONG queryFlags)
{
HRESULT hr = NOERROR;
WCHAR headerBuffer[256];
ULONG headerLength = sizeof(headerBuffer);
if (!WinHttpQueryHeaders(
requestHandle,
queryFlags,
NULL,
headerBuffer,
&headerLength,
WINHTTP_NO_HEADER_INDEX))
{
hr = HRESULT_FROM_WIN32(GetLastError());
goto Exit;
}
wprintf(L"%s: %s\n", headerName, headerBuffer);
Exit:
return hr;
}
它可以用于使用标志查询值。但我如何处理ETag?我试过了:
WinHttpQueryHeaders(
requestHandle,
NULL,
L"ETag",
headerBuffer,
&headerLength,
WINHTTP_NO_HEADER_INDEX)
没有成功。
答案 0 :(得分:2)
将WinHttpQueryHeaders
dwInfoLevel
设置为WINHTTP_QUERY_CUSTOM
,其中包含:{/ p>
使
中WinHttpQueryHeaders
搜索指定的标题名称pwszName
参数,并将标题信息存储在lpBuffer
。