AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi XML an einen HTTPS Server übergeben und Response auswerten
Thema durchsuchen
Ansicht
Themen-Optionen

XML an einen HTTPS Server übergeben und Response auswerten

Ein Thema von smartmod · begonnen am 24. Apr 2007 · letzter Beitrag vom 25. Apr 2007
 
smartmod

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

Re: XML an einen HTTPS Server übergeben und Response auswert

  Alt 25. Apr 2007, 17:51
Also,

die XML wird tatsächlich von IE nicht akzeptiert, obwohl sie so im SDK steht. Es ist so, dass der erste Part <AccessRequest> und der zweite Part <ShipmentConfirmRequest> nicht zusammen vorkommen dürfen, sonst meldet IE Nur ein Element auf höchster Stufe erlaubt. Also in zwei verschiedene XML gepackt, dann gehts.

Den Code habe ich entsprechend geändert und die Requests aufgeteilt:

Delphi-Quellcode:
procedure TForm1.Button10Click(Sender: TObject);

var
  request: TStrings;
  response: TStringStream;

begin
  request := TStringlist.Create;
  response := TStringStream.Create('');

request.Add('<?xml version="1.0"?>');
request.Add('<AccessRequest xml:lang="en-US">');
request.Add('<AccessLicenseNumber>5BC0971811XXXXX</AccessLicenseNumber>');
request.Add('<UserId>smartmod</UserId>');
request.Add('<Password>xxxxxxx</Password>');
request.Add('</AccessRequest>');

IDHttp1.Post('https://wwwcie.ups.com/ups.app/xml/ShipConfirm', request, response);

request.Clear;
response.Clear;

request.Add('<?xml version="1.0"?>');
request.Add('<ShipmentConfirmRequest xml:lang="en-US">');
request.Add('<Request>');
request.Add('<TransactionReference>');
request.Add('<CustomerContext>Ship Confirm / nonvalidate</CustomerContext>');
request.Add('<XpciVersion>1.0001</XpciVersion>');
request.Add('</TransactionReference>');
request.Add('<RequestAction>ShipConfirm</RequestAction>');
request.Add('<RequestOption>nonvalidate</RequestOption>');
request.Add('</Request>');
request.Add('<LabelSpecification>');
request.Add('<LabelPrintMethod>');
request.Add('<Code>GIF</Code>');
request.Add('</LabelPrintMethod>');
request.Add('<HTTPUserAgent>Mozilla/5.0</HTTPUserAgent>');
request.Add('<LabelImageFormat>');
request.Add('<Code>GIF</Code>');
request.Add('</LabelImageFormat>');
request.Add('</LabelSpecification>');
request.Add('<Shipment>');
request.Add('<Description>DescriptionofGoodsTest</Description>');
request.Add('<Shipper>');
request.Add('<Name>Smartmod</Name>');
request.Add('<AttentionName>Jan Petermann</AttentionName>');
request.Add('<PhoneNumber>06996860470</PhoneNumber>');
request.Add('<ShipperNumber>W2217V</ShipperNumber>');
request.Add('<Address>');
request.Add('<AddressLine1>Bertha-von-Suttner-Ring 8</AddressLine1>');
request.Add('<City>Frankfurt am Main</City>');
request.Add('<PostalCode>60598</PostalCode>');
request.Add('<CountryCode>DE</CountryCode>');
request.Add('</Address>');
request.Add('</Shipper>');
request.Add('<ShipTo>');
request.Add('<CompanyName>Smartmod</CompanyName>');
request.Add('<AttentionName>Jan Petermann</AttentionName>');
request.Add('<PhoneNumber>069686440</PhoneNumber>');
request.Add('<Address>');
request.Add('<AddressLine1>Bertha-von-Suttner-Ring 8</AddressLine1>');
request.Add('<PostalCode>60598</PostalCode>');
request.Add('<City>Frankfurt</City>');
request.Add('<CountryCode>DE</CountryCode>');
request.Add('</Address>');
request.Add('</ShipTo>');
request.Add('<ShipFrom>');
request.Add('<CompanyName>ShipFromCompanyName</CompanyName>');
request.Add('<AttentionName>Jan Petermann</AttentionName>');
request.Add('<PhoneNumber>06996860470</PhoneNumber>');
request.Add('<ShipperNumber>W2217V</ShipperNumber>');
request.Add('<Address>');
request.Add('<AddressLine1>Bertha-von-Suttner-Ring 8</AddressLine1>');
request.Add('<City>Frankfurt am Main</City>');
request.Add('<PostalCode>60598</PostalCode>');
request.Add('<CountryCode>DE</CountryCode>');
request.Add('</Address>');
request.Add('</ShipFrom>');
request.Add('<PaymentInformation>');
request.Add('<Prepaid>');
request.Add('<BillShipper>');
request.Add('<AccountNumber>W2217V</AccountNumber>');
request.Add('</BillShipper>');
request.Add('</Prepaid>');
request.Add('</PaymentInformation>');
request.Add('<Service>');
request.Add('<Code>07</Code>');
request.Add('</Service>');
request.Add('<Package>');
request.Add('<PackagingType>');
request.Add('<Code>02</Code>');
request.Add('</PackagingType>');
request.Add('<Dimensions>');
request.Add('<UnitOfMeasurement>');
request.Add('<Code>CM</Code>');
request.Add('</UnitOfMeasurement>');
request.Add('<Length>60</Length>');
request.Add('<Width>7</Width>');
request.Add('<Height>5</Height>');
request.Add('</Dimensions>');
request.Add('<PackageWeight>');
request.Add('<UnitOfMeasurement>');
request.Add('<Code>KGS</Code>');
request.Add('</UnitOfMeasurement>');
request.Add('<Weight>3.0</Weight>');
request.Add('</PackageWeight>');
request.Add('</Package>');
request.Add('</Shipment>');
request.Add('</ShipmentConfirmRequest>');

Memo1.Text:=IDHttp1.Post('https://wwwcie.ups.com/ups.app/xml/ShipConfirm', request);

end;

Nach wie vor kommt "Connection closed gracefully" und kein Response im Memo1.

Könnte mir vielleicht jemand, der sowas schonmal gemacht hat, einen kurzen Beispielcode schreiben, wie ich den Inhalt einer XML Datei an einen Server poste und das Ergebnis in einem Memo ausgeben lasse?

Also dass was ich hier versuche, nur einfach komplett neu und nicht von meinem laienhaften Code ausgehend?

Das wär klasse.

Danke schonmal!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz