
09.06.2009, 23:29
|
|
Постоянный
Регистрация: 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;
|
|
|