Disclosure Statement: This site contains affiliate links, which means that I may receive a commission if you make a purchase using these links. As an eBay Partner, I earn from qualifying purchases.
If you find these projects useful please consider becoming a sponsor with Patreon, GitHub or Liberapay.

How to list all request headers

Post Reply
alpires2000
Posts: 52
Joined: Sat Dec 09, 2017 4:40 pm

How to list all request headers

Post by alpires2000 »

Hi, How to list all request headers in WebResourceRequested?

I have this code:

Code: Select all

procedure Tfrm_web.WVBrowser1WebResourceRequested(Sender: TObject;
  const aWebView: ICoreWebView2;
  const aArgs: ICoreWebView2WebResourceRequestedEventArgs);
var
  Headers: ICoreWebView2HttpRequestHeaders;
  Request: ICoreWebView2WebResourceRequest;
  HeaderIterator: ICoreWebView2HttpHeadersCollectionIterator;
begin
  aArgs.get_Request(Request);
  Request.Get_Headers(Headers);
end;
How to list all headers contained in Headers in a memo?
User avatar
salvadordf
Posts: 4620
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: How to list all request headers

Post by salvadordf »

See the MiniBrowser demo :
https://github.com/salvadordf/WebView4Delphi/blob/b0cfcb2f551bb589e4ce6456b847d9e2aee2acc0/demos/Delphi_VCL/MiniBrowser/uMiniBrowser.pas#L1008
alpires2000
Posts: 52
Joined: Sat Dec 09, 2017 4:40 pm

Re: How to list all request headers

Post by alpires2000 »

Hi Salvador, but in the minibrowser, there's only an example in the WebResourceResponseReceived event, I need to read the headers from the WebResourceRequested event.
User avatar
salvadordf
Posts: 4620
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: How to list all request headers

Post by salvadordf »

See the CustomSchemeBrowser demo too :
https://github.com/salvadordf/WebView4Delphi/blob/b0cfcb2f551bb589e4ce6456b847d9e2aee2acc0/demos/Delphi_VCL/CustomSchemeBrowser/uCustomSchemeBrowser.pas#L117

You only need to get the request from the "aArgs" argument :

Code: Select all

var
  TempArgs       : TCoreWebView2WebResourceRequestedEventArgs;
  TempRequest  : TCoreWebView2WebResourceRequestRef;
  TempHeaders  : TCoreWebView2HttpResponseHeaders;
  TempIterator  : TCoreWebView2HttpHeadersCollectionIterator;  
begin  
  TempArgs       := TCoreWebView2WebResourceRequestedEventArgs.Create(aArgs);
  TempRequest := TCoreWebView2WebResourceRequestRef.Create(TempArgs.Request);
  ...
end;  
Then get the headers from the request :

Code: Select all

  TempHeaders  := TCoreWebView2HttpResponseHeaders.Create(TempRequest.Headers);
And also the iterator from the headers :

Code: Select all

  TempIterator := TCoreWebView2HttpHeadersCollectionIterator.Create(TempHeaders.Iterator);
Finally read the headers :

Code: Select all

      while TempIterator.HasCurrentHeader do
        begin
          if TempIterator.GetCurrentHeader(TempName, TempValue) then
            begin
              // Handle the header information here with TempName and TempValue.
            end;

          TempIterator.MoveNext;
        end;
Post Reply