![]() |
XMl Mit UTF-8 Kodierung
Also ich muss Daten von einem Server holen und vorher eine XML schicken das klappt aber nicht
weis einer was das sein könnte. Hier die Doku. HTTP-Methode Die HTTP-Methode (GET/POST) gibt dem empfangenden Server (hier: EBC) vor, wie er den eingehenden Request verarbeiten soll. Für die Übermittlung der Daten wie auch aller übrigen eingehenden Nachrichten am EBC der Synaxon AG ist ausschließlich die HTTP POST Methode zu verwenden, nicht die HTTP GET Methode. MIME-Header Für die korrekte Übermittlung der Nachricht wird eingehend eine der folgenden Content- Type und MIME Header Deklarationen erwartet. Nähere Informationen hierzu finden Sie unter: ![]() Content-Type: text/xml; charset=“utf-8“ Dies ist der empfohlene charset-Wert für die Verwendung mit text/xml. Alternativ kann innerhalb des MIME Headers der charset auch weggelassen werden: Content-Type: text/xml Hier die xsd Datei
XML-Code:
Hier meine XML Datei die DEMo XML sieht genau so aus.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="PriceAndAvailabilityQuery"> <xs:complexType> <xs:sequence> <xs:element ref="TransactionHeader"/> <xs:element ref="PriceAndAvailability"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TransactionHeader"> <xs:complexType> <xs:sequence> <xs:element ref="VersionId"/> <xs:element ref="GenerationDateTime"/> <xs:element ref="ERP"/> <xs:element ref="Login"/> <xs:element ref="Password"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VersionId" type="xs:decimal"/> <xs:element name="GenerationDateTime" type="xs:dateTime"/> <xs:element name="ERP" type="xs:string"/> <xs:element name="Login"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="PriceAndAvailability"> <xs:complexType> <xs:sequence> <xs:element ref="Query"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Query"> <xs:complexType> <xs:sequence> <xs:element ref="ProductReference"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ProductReference"> <xs:complexType> <xs:choice> <xs:element ref="ProprietaryProductIdentifier"/> <xs:element ref="GlobalProductIdentifier"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="ProprietaryProductIdentifier"> <xs:complexType> <xs:sequence> <xs:element ref="ProprietaryProductNumber" maxOccurs="10" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ProprietaryProductNumber" type="xs:string"/> <xs:element name="GlobalProductIdentifier"> <xs:complexType> <xs:sequence> <xs:element ref="GlobalProductNumber" maxOccurs="10" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GlobalProductNumber" type="xs:string"/> </xs:schema>
XML-Code:
Und hier mein Code
<?xml version="1.0" encoding="UTF-8"?>
<PriceAndAvailabilityQuery> <TransactionHeader> <VersionId>1.00</VersionId> <GenerationDateTime>2007-08-10T14:42:29</GenerationDateTime> <ERP>W2</ERP> <Login>USER</Login> <Password>PW</Password> </TransactionHeader> <PriceAndAvailability> <Query> <ProductReference> <ProprietaryProductIdentifier> <ProprietaryProductNumber>PCS340206</ProprietaryProductNumber> </ProprietaryProductIdentifier> </ProductReference> </Query> </PriceAndAvailability> </PriceAndAvailabilityQuery>
Delphi-Quellcode:
FIdHTTP:=TidHTTP.Create(Nil);
FIdHTTP.AllowCookies:=True; FIdHTTP.ReadTimeout:=0; FIdHTTP.Request.CustomHeaders.Clear; FIdHTTP.Request.BasicAuthentication:=False; FIdHTTP.Request.ContentEncoding:='UTF-8'; FIdHTTP.Request.ContentType:='text/xml'; FIdHTTP.Request.Accept:='text/html, */*'; Stream:=TMemoryStream.Create; try FQuery.SaveToStream(Stream); Buffer:=FURL+'/'+FKomponente+'/'+FFunktion+'?format=xml'; Stream.Position:=0; FResponse.Text:=FIdHTTP.Post(Buffer,Stream); finally Stream.Free; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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