加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在delphi中的“自定义”浏览器中修改requestHeaders

发布时间:2020-12-15 09:19:58 所属栏目:大数据 来源:网络整理
导读:我的deplhi应用程序(IE)中集成了一个浏览器.我需要调用某个Web应用程序,我需要在标题中为来自我的应用程序浏览器的所有请求添加一个新变量,例如 jquery将x_robj添加到HTTP_X_REQUESTED_WITH参数.我怎么能这样做呢?代码样本会很棒.我是TWebBrowser的用户. 解
我的deplhi应用程序(IE)中集成了一个浏览器.我需要调用某个Web应用程序,我需要在标题中为来自我的应用程序浏览器的所有请求添加一个新变量,例如 jquery将x_robj添加到HTTP_X_REQUESTED_WITH参数.我怎么能这样做呢?代码样本会很棒.我是TWebBrowser的用户.

解决方法

您可以使用OnBeforeNavigate2事件修改标头:

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL,Flags,TargetFrameName,PostData,Headers: OleVariant; var Cancel: WordBool);
var
  NewHeaders: OleVariant;
begin
  // do not allow frames or iframes to raise this event
  if (pDisp as IUnknown) = (WebBrowser1.ControlInterface as IUnknown) then
  begin
    // avoid stack overflow: check if our custom header is already set
    if Pos('MyHeader',Headers) <> 0 then Exit;

    // cancel the current navigation
    Cancel := True;
    (pDisp as IWebBrowser2).Stop;

    // modify headers with our custom header
    NewHeaders := Headers + 'MyHeader: Value'#13#10;

    (pDisp as IWebBrowser2).Navigate2(URL,NewHeaders);
  end;
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读