Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Nov : Indy 10 eBay XML API Example
| Subject: | Indy 10 eBay XML API Example |
| Posted by: | "Johnnie Norsworthy" (jln2..@verizon.net) |
| Date: | Tue, 7 Nov 2006 22:32:28 |
I have been wrestling with trying to use the eBay web services with Delphi,
but have just about given up on that route.
Has anyone used the alternate eBay XML API with Indy 10+SSL?
The code I was using to test is below (with my keys omitted). All I get is
an Indy exception "Connection Closed Gracefully".
-Johnnie
const
//
// sandbox keys
//
VERSION = '475';
EBAYURL = 'https://api.sandbox.ebay.com/ws/api.dll';
SITEID = '0';
APPID = ;
CERTID = ;
DEVID = ;
TOKEN = ;
procedure TForm3.btnGetTimeClick(Sender: TObject);
var
Request: TStringStream;
Response: TmemoryStream;
begin
Http.Request.CustomHeaders.Clear;
Http.Request.CustomHeaders.Add('X-EBAY-API-COMPATIBILITY-LEVEL:'+VERSION);
Http.Request.CustomHeaders.Add('X-EBAY-API-DETAIL-LEVEL:0');
Http.Request.CustomHeaders.Add('X-EBAY-API-SESSION-CERTIFICATE:'+DEVID+';'+APPID+';'+CERTID);
Http.Request.CustomHeaders.Add('X-EBAY-API-DEV-NAME:'+DEVID);
Http.Request.CustomHeaders.Add('X-EBAY-API-APP-NAME:'+APPID);
Http.Request.CustomHeaders.Add('X-EBAY-API-CERT-NAME:'+CERTID);
Http.Request.CustomHeaders.Add('X-EBAY-API-CALL-NAME:GeteBayOfficialTime');
Http.Request.CustomHeaders.Add('X-EBAY-API-SITEID:'+SITEID);
MemoHeaders.Text := Http.Request.CustomHeaders.Text;
Request := TStringStream.Create('');
Request.WriteString('<?xml version="1.0" encoding="utf-8"?>');
Request.WriteString('<GeteBayOfficialTimeRequest
xmlns=\"urn:ebay:apis:eBLBaseComponents\">');
Request.WriteString('<RequesterCredentials>');
Request.WriteString('<eBayAuthToken>'+TOKEN+'</eBayAuthToken>');
Request.WriteString('</RequesterCredentials>');
Request.WriteString('</GeteBayOfficialTimeRequest>');
MemoRequest.Text := Request.DataString;
Http.Request.ContentType := 'text/xml';
Http.Request.ContentLength := Request.Size;
Http.Request.Accept := 'text/xml';
Response := TMemoryStream.Create;
try
Http.Post(EBAYURL,Request,Response);
except
on E:Exception do
begin
ShowMessage(E.Message);
end;
end;
Response.Position := 0;
MemoResponse.Lines.LoadFromStream(Response);
Request.Free;
Response.Free;
end;