1

I want to query ETag header from response headers (Of course ETag is HTTP standar, but it is not defined as a flag in WinHttpQueryHeaders function). this is Microsoft's 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;
}

It can use to query value with flags. But how I can do with ETag? I tried:

WinHttpQueryHeaders(
    requestHandle,
    NULL,
    L"ETag",
    headerBuffer,
    &headerLength,
    WINHTTP_NO_HEADER_INDEX)

with no success.

NoName
  • 7,940
  • 13
  • 56
  • 108

1 Answers1

3

Pass WinHttpQueryHeaders a dwInfoLevel set to WINHTTP_QUERY_CUSTOM which:

Causes WinHttpQueryHeaders to search for the header name specified in the pwszName parameter and store the header information in lpBuffer.

Alex K.
  • 171,639
  • 30
  • 264
  • 288