Add custom request headers

348 views
Skip to first unread message

Martijn

unread,
May 19, 2011, 5:46:42 PM5/19/11
to delphichromiumembedded
Hi,

I need to add a custom request headers before I browse. I've added
some code to show what I tried so far, but this doesn't work.

Thanks in advance..

procedure TForm1.Chromium1BeforeBrowse(Sender: TCustomChromium;
const browser: ICefBrowser; const frame: ICefFrame;
const request: ICefRequest; navType: TCefHandlerNavtype; isRedirect:
Boolean;
out Result: TCefRetval);
var
map: ICefStringMap;
begin
map := TCefStringMapOwn.Create;
map.Append('X-MyApp-Cycle', 'Fiets');
request.SetHeaderMap(map);
map := nil;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Chromium1.DefaultUrl := 'http://localhost:8080/bkticker/woot.cfm';
end;

Henri Gourvest

unread,
May 19, 2011, 6:39:48 PM5/19/11
to delphichrom...@googlegroups.com

procedure TMainForm.crmBeforeBrowse(Sender: TCustomChromium;
  const browser: ICefBrowser; const frame: ICefFrame;
  const request: ICefRequest; navType: TCefHandlerNavtype; isRedirect: Boolean;
  out Result: TCefRetval);
var
  map: ICefStringMap;
begin
  map := TCefStringMapOwn.Create;
  request.GetHeaderMap(map);
  if map.Find('X-MyApp-Cycle') = '' then
  begin
    map.Append('X-MyApp-Cycle', 'Fiets');
    request.SetHeaderMap(map);
    frame.LoadRequest(request);
    Result := RV_HANDLED;
  end;
end;

or you can build the request yourself

var
  req: ICefRequest;
  map: ICefStringMap;
begin
  req := TCefRequestRef.New;
  req.Url := 'http://www.google.com';
  req.Method := 'GET';
  map := TCefStringMapOwn.Create;
  req.GetHeaderMap(map);
  map.Append('X-MyApp-Cycle', 'Fiets');
  req.SetHeaderMap(map);
  crm.Browser.MainFrame.LoadRequest(req);
end;

2011/5/19 Martijn <mkat...@gmail.com>
--
Henri Gourvest

Martijn

unread,
May 20, 2011, 8:10:08 AM5/20/11
to delphichromiumembedded
Great, thanks!
> 2011/5/19 Martijn <mkatw...@gmail.com>

jep

unread,
Apr 8, 2016, 10:07:18 AM4/8/16
to delphichromiumembedded
I'm trying to do a similar thing, but setting response headers. So far, I'm getting no luck. Here's what I do in my WebInterceptHandler.DoWebIntercept code:
var
  headerMap: ICefStringMultimap;
begin
...
  headerMap := TCefStringMultiMapOwn.Create;
  response.GetHeaderMap(headerMap);
  headerMap.Append('foo', 'bar');
  response.SetHeaderMap(headerMap);

I never see these headers when I debug in chrome. The response I filled in using the web intercept works, including the ContentType I set. but that header I added just isn't there.
Reply all
Reply to author
Forward
0 new messages