Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Nov : Indy 10 eBay XML API Example

www.cryer.info
Managed Newsgroup Archive

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;

Replies:

www.cryer.info
Managed Newsgroup Archive