如何自定义修改TChromium的header头信息!

  1. TChromium自定义post的header信息提交数据
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    uses
    ceflib;

    function CreateField(const AValue: AnsiString): ICefPostDataElement;
    begin
    Result := TCefPostDataElementRef.New;
    Result.SetToBytes(Length(AValue), PAnsiChar(AValue));
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Header: ICefStringMultimap;
    Data: ICefPostData;
    Request: ICefRequest;
    begin
    Header := TCefStringMultimapOwn.Create;
    Header.Append('Content-Type', 'application/x-www-form-urlencoded');

    Data := TCefPostDataRef.New;
    Data.AddElement(CreateField('Data.id=27'));
    Data.AddElement(CreateField('&Data.title=title'));
    Data.AddElement(CreateField('&Data.body=body'));

    Request := TCefRequestRef.New;
    Request.Flags := WUR_FLAG_NONE;
    Request.Assign('http://example.com/', 'POST', Data, Header);

    Chromium1.Browser.MainFrame.LoadRequest(Request);
    end;
  2. 在另一版本中的代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Header: ICefStringMultimap;
    Data: ICefPostData;
    Request: ICefRequest;
    begin
    Request := TCefRequestRef.New;
    Request.Url := 'http://example.com/';
    Request.Method := 'POST';
    Request.Flags := WUR_FLAG_NONE;

    Header := TCefStringMultimapOwn.Create;
    Header.Append('Content-Type', 'application/x-www-form-urlencoded');
    Request.SetHeaderMap(Header);

    Data := TCefPostDataRef.New;
    Data.AddElement(CreateField('Data.id=27'));
    Data.AddElement(CreateField('&Data.title=title'));
    Data.AddElement(CreateField('&Data.body=body'));
    Request.PostData := Data;

    Chromium1.Browser.MainFrame.LoadRequest(Request);
    end;
  3. TChromium自定义post数据
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    function CreateField(const AValue: AnsiString): ICefPostDataElement;
    begin
    Result := TCefPostDataElementRef.New;
    Result.SetToBytes(Length(AValue), PAnsiChar(AValue));
    end;

    //*****************************************

    procedure POST(total, fee: integer);
    var
    Header: ICefStringMultimap;
    Data: ICefPostData;
    Request: ICefRequest;
    Cook: ICefCookieManager;
    begin
    Request := TCefRequestRef.New;
    Request.Url := '';
    Request.Method := 'POST';
    Request.Flags:=[UR_FLAG_ALLOW_CACHED_CREDENTIALS,UR_FLAG_ALLOW_COOKIES];

    Header := TCefStringMultimapOwn.Create;
    Header.Append('Host', '');
    Header.Append('User-Agent', '');
    Header.Append('Accept', '');
    Header.Append('Accept-Language', '');
    Header.Append('Accept-Encoding', '');
    Header.Append('Content-Type', '');
    Header.Append('Referer', '');
    Header.Append('Content-Length', '');
    Header.Append('Origin', '');
    Header.Append('Connection', '');
    Header.Append('Pragma', '');
    Header.Append('Cache-Control', '');

    Header.Append('Cookie','...');
    ...
    Header.Append('Cookie','...');

    Request.SetHeaderMap(Header);

    Data := TCefPostDataRef.New;
    Data.AddElement(CreateField('sessionid='+SessionID));
    Data.AddElement(CreateField('¤cy=5'));
    Data.AddElement(CreateField('&subtotal='+inttostr(total-fee)));
    Data.AddElement(CreateField('&fee='+IntToStr(fee)));
    Data.AddElement(CreateField('&total='+IntToStr(total)));

    Request.PostData := Data;

    form1.Chromium1.Browser.MainFrame.LoadRequest(Request);
    end;
-------------本文已结束赏个小钱吧-------------
×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开微信扫一扫,即可进行扫码打赏哦

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

64.7K