共用方式為


interface ICoreWebView2HttpHeadersCollectionIterator

Note

This reference is no longer being maintained. For the latest API reference, see WebView2 API Reference.

interface ICoreWebView2HttpHeadersCollectionIterator
  : public IUnknown

Iterator for a collection of HTTP headers.

Summary

Members Descriptions
GetCurrentHeader Get the name and value of the current HTTP header of the iterator.
get_HasCurrentHeader True when the iterator hasn't run out of headers.
MoveNext Move the iterator to the next HTTP header in the collection.

See ICoreWebView2HttpRequestHeaders and ICoreWebView2HttpResponseHeaders.

std::wstring RequestHeadersToJsonString(ICoreWebView2HttpRequestHeaders* requestHeaders)
{
    wil::com_ptr<ICoreWebView2HttpHeadersCollectionIterator> iterator;
    CHECK_FAILURE(requestHeaders->GetIterator(&iterator));
    BOOL hasCurrent = FALSE;
    std::wstring result = L"[";

    while (SUCCEEDED(iterator->get_HasCurrentHeader(&hasCurrent)) && hasCurrent)
    {
        wil::unique_cotaskmem_string name;
        wil::unique_cotaskmem_string value;

        CHECK_FAILURE(iterator->GetCurrentHeader(&name, &value));
        result += L"{\"name\": " + EncodeQuote(name.get())
            + L", \"value\": " + EncodeQuote(value.get()) + L"}";

        BOOL hasNext = FALSE;
        CHECK_FAILURE(iterator->MoveNext(&hasNext));
        if (hasNext)
        {
            result += L", ";
        }
    }

    return result + L"]";
}

Members

GetCurrentHeader

Get the name and value of the current HTTP header of the iterator.

public HRESULT GetCurrentHeader(LPWSTR * name,LPWSTR * value)

This method will fail if the last call to MoveNext set has_next to FALSE.

get_HasCurrentHeader

True when the iterator hasn't run out of headers.

public HRESULT get_HasCurrentHeader(BOOL * hasCurrent)

If the collection over which the iterator is iterating is empty or if the iterator has gone past the end of the collection then this is false.

MoveNext

Move the iterator to the next HTTP header in the collection.

public HRESULT MoveNext(BOOL * hasNext)

The hasNext parameter will be set to FALSE if there are no more HTTP headers. After this occurs the GetCurrentHeader method will fail if called.