delphi nethttpclient操作cookie

delphi nethttpclient操作cookie

uses System.Net.HttpClientComponent,System.Net.HttpClient,

//取 cookei ///
  for var TCooki in nethttp.CookieManager.Cookies do  //    nethttp: TNetHTTPClient;
  begin

    if str_str(uip, StrRight(TCooki.Domain, Length(TCooki.Domain) - 1)) then
      edit1.Text := TCooki.Value;
     //memo1.Lines.Add(TCooki.Path + ' | ' + TCooki.Domain + ' | ' + TCooki.Name + ' | ' + TCooki.Value);
  end;
   

//添加cookie 
  var a := TURI.Create('http://xxxxxx/main.action');
  a.path := '/';
  var cookie := System.Net.HttpClient.tcookie.Create('JSESSIONID=' + Edit1.text + ';', aaaa); // 'JSESSIONID=A17E7980BA97270045B829D8CC0EF060;'
  nhttp := TNetHTTPClient.Create(nil);
  nhttp.CookieManager.Clear;  //清除cookie 
  nhttp.CookieManager.AddServerCookie(cookie, a);




//最简单取得cookie后 克隆控件属性
   myHttp.Assign(nHttp);   //直接克隆属性  myHttp 复制 nHttp  ,释放nHttp不会影响myHttp
   

 

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Net.URLClient,
  System.Net.HttpClient, System.Net.HttpClientComponent;

type
  TForm1 = class(TForm)
    NetHTTPClient1: TNetHTTPClient;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  cookie: TCookie;
begin
  for cookie in NetHTTPClient1.CookieManager.Cookies do
  begin if (cookie.Domain = 'www.server.com') and (cookie.Name = 'test') then
  begin
  //
  end;
  end;
end;

end.

  TCookie:

  /// <summary>Cookie record.</summary>
  TCookie = record
  private
    class function StrExpiresToDateTime(const AStrDate: string): TDateTime; static;
  public
    /// <summary>Cookie Name</summary>
    Name: string;
    /// <summary>Cookie Value</summary>
    Value: string;
    /// <summary>Cookie Expires. It's the date when the cookie will expire</summary>
    /// <remarks>When Expires is 0 means a session cookie.</remarks>
    Expires: TDateTime;
    /// <summary>Cookie Domain</summary>
    Domain: string;
    /// <summary>Cookie Path</summary>
    Path: string;
    /// <summary>Cookie Secure</summary>
    /// <remarks>If True then the cookie will be sent if https scheme is used</remarks>
    Secure: Boolean;
    /// <summary>Cookie HttpOnly</summary>
    /// <remarks>If True then the cookie will not be used in javascript, it's browser dependant.</remarks>
    HttpOnly: Boolean;

    /// <summary>Return the cookie as string to be send to the server</summary>
    function ToString: string;
    /// <summary>Return a TCookie parsing ACookieData based on the URI param</summary>
    class function Create(const ACookieData: string; const AURI: TURI): TCookie; static;
  end;

  

posted @ 2019-05-20 09:12  delphi中间件  阅读(2428)  评论(0编辑  收藏  举报