Page 1 of 1
How to list all request headers
Posted: Thu Oct 31, 2024 3:04 am
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?
Re: How to list all request headers
Posted: Thu Oct 31, 2024 10:09 am
by salvadordf
See the MiniBrowser demo :
https://github.com/salvadordf/WebView4Delphi/blob/b0cfcb2f551bb589e4ce6456b847d9e2aee2acc0/demos/Delphi_VCL/MiniBrowser/uMiniBrowser.pas#L1008
Re: How to list all request headers
Posted: Thu Oct 31, 2024 11:28 am
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.
Re: How to list all request headers
Posted: Fri Nov 01, 2024 9:43 am
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;