Тема: HTTPS
Показать сообщение отдельно

  #17  
Старый 09.06.2009, 23:29
cremator (c)
Постоянный
Регистрация: 20.06.2008
Сообщений: 323
Провел на форуме:
1240829

Репутация: 165
По умолчанию

Вот типа тож пример от туда, но тут с кукисами как-то запарно реализовано, если они конешн тебе нужны будут вообще..

Код:
uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATHTTPLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
req: TChilkatHttpRequest;
http: TChilkatHttp;
success: Integer;
html: String;
domain: String;
port: Integer;
ssl: Integer;
resp: IChilkatHttpResponse;

begin
req := TChilkatHttpRequest.Create(Self);
http := TChilkatHttp.Create(Self);

//  Any string unlocks the component for the 1st 30-days.
success := http.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
  begin
    ShowMessage(http.LastErrorText);

  end;

//  Before doing the POST, do a simple GET for the purpose of obtaining a Cookie.
//  The Cookie contains a session-id and a session-id-time, and these values must
//  be current.

//  The CookieDir may be set to "memory" to keep an in-memory cache of cookies.
//  Alternatively, you may set it to a directory, such as "c:/temp/cookies".  If you do that,
//  you can visually browse the cookies which will appear as XML files in the CookieDir.
http.CookieDir := 'memory';

//  Tell the HTTP component to save any cookies received.  Also tell the component to
//  re-send cookies with subsequent GETs and POSTs.
http.SendCookies := 1;
http.SaveCookies := 1;

//  Do a GET to retrieve our Cookie...

html := http.QuickGetStr('https://secure.amazon.com/exec/panama/seller-admin/manual-reports/get-report-status');

//  Build an HTTP POST Request:
req.UsePost();
req.Path := '/exec/panama/seller-admin/manual-reports/get-report-status';

//  Setting your login/password causes Chilkat to automatically add the Authorization header:
http.Login := 'YourLoginEmailAddress';
http.Password := 'YourPassword';

//  NOTE: Do not explicitly add the Cookie header.  It is added automatically by Chilkat HTTP.
req.AddHeader('Content-Type','text/xml');

req.AddHeader('NumberofReports','2');
req.AddHeader('ReportName','OpenListingsLite');

//  Send the HTTP POST and get the response.  Note: This is a blocking call.
//  The method does not return until the full HTTP response is received.

domain := 'secure.amazon.com';
port := 443;
ssl := 1;

resp := http.SynchronousRequest(domain,port,ssl,req.DefaultInterface);
if (resp = nil ) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
  end
else
  begin
    //  Display the XML returned.
    Memo1.Lines.Add(resp.BodyStr);
  end;
end;
 
Ответить с цитированием