Einzelnen Beitrag anzeigen

smartmod

Registriert seit: 11. Jul 2005
26 Beiträge
 
#1

IdHttp Post einer XML geht nicht.

  Alt 6. Aug 2006, 10:38
Hallo,

ich möchte für mein Geschäft ein Programm schreiben, welches den Versand via UPS automatisiert. Da es am einfachsten ist, habe ich mal mit dem Tracking angefangen. Und selbst das geht nicht.

Ich bekomme immer "Connection closed gracefully" aber keine Response vom Server. Hier ist mein Quellcode:

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var
  request: TStrings;
  response: TMemoryStream;
begin
  request := TStringlist.Create;
  response := TMemoryStream.Create;

  request.Add('<?xml version="1.0"?>');
  request.Add(' <AccessRequest xml:lang="en-US">');
  request.Add(' <AccessLicenseNumber>AB2140721467812</AccessLicenseNumber>');
  request.Add(' <UserId>USERNAME</UserId>');
  request.Add(' <Password>PASSWORD</Password>');
  request.Add(' </AccessRequest>');
  request.Add('<?xml version="1.0"?>');
  request.Add('<TrackRequest xml:lang="en-US">');
  request.Add(' <Request>');
  request.Add(' <TransactionReference>');
  request.Add(' <CustomerContext>Example 1</CustomerContext>');
  request.Add(' <XpciVersion>1.0001</XpciVersion>');
  request.Add(' </TransactionReference>');
  request.Add(' <RequestAction>Track</RequestAction>');
  request.Add(' <RequestOption>activity</RequestOption>');
  request.Add(' </Request>');
  request.Add(' <TrackingNumber>1Z12345E1512345676</TrackingNumber>');
  request.Add('</TrackRequest>');
  
Memo1.Text := IdHTTP1.Post('https://wwwcie.ups.com/ups.app/xml/Track', request);

end;
Außerdem frage ich mich, wie ich einfacher den Inhalt einer XML in den request reinschreiben kann, ohne jede Zeile im Quellcode einzubinden. Ich wüsste, wie man es über ein Memo oder eine Schleife macht, aber gibt's da auch was einfacheres?

Vielen Dank!
  Mit Zitat antworten Zitat