Delphi CEF4Delphi Chromium1 设置User-Agent


本文整理自网络,侵删。

 
方法1
procedure TMiniBrowserFrm.Chromium1BeforeResourceLoad(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame;
  const request: ICefRequest; const callback: ICefRequestCallback;
  out Result: TCefReturnValue);

  //===============设置 User-Agent
var
  TempOldMap, TempNewMap : ICefStringMultimap;
  i : NativeUInt;
  TempReplaced : boolean;
  userAgent : string;
begin
  Result := RV_CONTINUE;
   userAgent := EditUA.Text;
  if userAgent <> '' then
    try
      // We replace the Accept-Encoding HTTP header to request uncompressed resources.
      // If the server sends uncompressed resources it should be easier to handle the
      // end of the resource reception because we may know its length.

      TempNewMap := TCefStringMultimapOwn.Create;
      TempOldMap := TCefStringMultimapOwn.Create;

      request.GetHeaderMap(TempOldMap);

      TempReplaced := False;
      i := 0;
      while (i < TempOldMap.Size) do
        begin
          if (CompareText(TempOldMap.Key[i], 'User-Agent') = 0) then
            begin
              TempNewMap.Append('User-Agent', userAgent);
              TempReplaced := True;
            end
           else
            TempNewMap.Append(TempOldMap.Key[i], TempOldMap.Value[i]);

          inc(i);
        end;

      if not(TempReplaced) then TempNewMap.Append('User-Agent', userAgent);
      request.SetHeaderMap(TempNewMap);
    finally
      TempNewMap := nil;
      TempOldMap := nil;
    end;
  //===============设置 User-Agent

  Result := RV_CONTINUE;

  if Chromium1.IsSameBrowser(browser) and
     (frame <> nil) and
     frame.IsMain and
     frame.IsValid then
    InspectRequest(request);
end;



方法2
procedure TMiniBrowserFrm.Chromium1BeforeResourceLoad(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame;
  const request: ICefRequest; const callback: ICefRequestCallback;
  out Result: TCefReturnValue);
  //===============设置 User-Agent
Var
  map: ICefStringMultimap;
begin
    map := TCefStringMultimapOwn.Create;
    request.GetHeaderMap(map);
    map.Append('User-Agent','Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16');
    request.SetHeaderMap(map);
    callback.Cont(true);
end;
  //===============设置 User-Agent
  Result := RV_CONTINUE;

  if Chromium1.IsSameBrowser(browser) and
     (frame <> nil) and
     frame.IsMain and
     frame.IsValid then
    InspectRequest(request);
end;

相关阅读 >>

Delphi xe更改ttrayicon系统任务栏图标(无模糊)

Delphi ini文件操作 tinifile、tmeminifile

Delphi tchart 的使用

Delphi 实现数据库读取图片文件

Delphi imagelist-图片(bmp)按名称而不按索引

Delphi 10.4 freeandnil 问题

Delphi idftp发送本机ip和外网ip

Delphi xe7android应用启用蓝牙

Delphi出现 no mapping for the unicode character exists in the target multi-byte code page 处理方法

Delphi里如何限制form的大小

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...