Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Verwendung einer XML API (https://www.delphipraxis.net/185147-verwendung-einer-xml-api.html)

BerTa 19. Mai 2015 08:23

Verwendung einer XML API
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sehr geehrte Damen und Herren,
ich habe Probleme bei der Nutzung der einer XML Schnittstelle zu einem WebShop (Gambio).
Ich nutze Delphi7 mit den Indy Komponenten.
Wenn ich jetzt einen Http-Post absetze, bekomme ich egal was ich übertrage in meinem Stream immer die selbe Antwort:

IdHTTP1.Post('http://testshop.de/request_port.php?module=XMLConnect',lStream,lResSt ream);

Anfrage (Stream):
<?xml version="1.0" encoding="UTF-8" ?>
<GambioXML>
<general>
<function>login</function>
</general>
<login>
<user>user</user>
<password>password</password>
</login>
</GambioXML>




Antwort (lResStream):

<?xml version="1.0" ?>
<GambioXML>
<request>
<success>0</success>
<errormessage><![CDATA[exception 'ErrorException' with message 'Undefined index: gambio_api_xml' in C:\xampp\htdocs\system\classes\gambio_xml\XMLConne ctAjaxHandler.inc.php:88 Stack trace: #0 C:\xampp\htdocs\system\classes\gambio_xml\XMLConne ctAjaxHandler.inc.php(88): custom_error_handler(8, 'Undefined index...', 'C:\\xampp\\htdocs...', 88, Array) #1 C:\xampp\htdocs\system\core\RequestRouter.inc.php( 92): XMLConnectAjaxHandler->proceed() #2 C:\xampp\htdocs\request_port.php(64): RequestRouter->proceed('XMLConnect') #3 {main}]]></errormessage>
</request>
</GambioXML>

Vllt kann mir ja einer hier im Forum weiterhelfen, da die Herrn von Gambio darüber keine Auskunft geben wollen.
Ich wäre euch jedenfalls sehr dankbar. Im Anhang habe ich die Schnittstellen Beschreibung beigefügt.
Vllt verstehe ich hier auch irgendetwas falsch.

Schöne Grüße

mkinzler 19. Mai 2015 08:50

AW: Verwendung einer XML API
 
Hast Du es mal inklusive der Kommentarzeilen versucht?
Ist das Format auch UTF-8?

vagtler 19. Mai 2015 09:02

AW: Verwendung einer XML API
 
Um die Validität von HTTP-Requests zu überprüfen, verwende ich gerne SoapUI oder Postman und Fiddler (oder Charles auf Mac OS X). Damit kann man dann schön sehen, wie sehr sich die Requests unterscheiden.

Neutral General 19. Mai 2015 09:21

AW: Verwendung einer XML API
 
In der Doku steht:

Zitat:

Requests an die Schnittstelle müssen in Form eines XML-Dokuments im Datablock eines HTTP-POSTRequests
gesendet werden (POST['gambio_api_xml'])
Übergib mal statt dem IStream eine Stringliste. Und die Stringliste befüllst du so:

Delphi-Quellcode:
RequestListe.Values['gambio_api_xml'] := XML; // <-- die Login XML
Bin mir da jetzt nicht 100% sicher und kanns hier leider auch nicht testen.
Falls das nicht klappt dann probiers so:

Delphi-Quellcode:
uses
  IdMultipartFormData;

DataStream := TIdMultiPartFormDataStream.Create;
try
  DataStream.AddFormField('gambio_api_xml', XML);
  http.Post('http://testshop.de/request_port.php?module=XMLConnect',DataStream, lResStream));
finally
  DataStream.Free;
end;

BerTa 19. Mai 2015 10:48

AW: Verwendung einer XML API
 
Vielen Dank für die schnellen Antworten.

@Neutraler General
Habe den ersten Weg einmal angetestet und siehe da es funktioniert.:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz