AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTTPRio + SSL

Ein Thema von BerTa · begonnen am 5. Jan 2018 · letzter Beitrag vom 6. Sep 2019
Antwort Antwort
Seite 2 von 2     12   
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: HTTPRio + SSL

  Alt 5. Jan 2018, 13:45
Habe ich bisher noch nirgendwo etwas von gelesen, aber auch noch nicht explicit nach gesucht (REST).
Im Developer Portal steht mir zurzeit nur Soap zur Verfügung.
Wenn es unter WinXP nicht funktioniert ist es auch kein Weltuntergang.

Hatte vorhin noch eine EMail an den Support gesendet, mal sehen ob die eventuell helfen können.

Also erstmal Antwort abwarten und weitersehen.

Besten Dank euch beiden schonmal und schönes Wochenende
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: HTTPRio + SSL

  Alt 8. Jan 2018, 11:53
Muss bezüglich REST was beachtet werden?
Da ich noch auf die Antwort von Hermes warte, habe ich mir schonmal die DPD Schnittstelle angeschaut.
Hier steht mir neben SOAP auch REST zur Verfügung.
Habe meine XML-Datei konfiguriert und eine Abfrage per IDHTTP.POST durchgeführt.
Code:
    IdHTTP1.Request.URL := 'https://cloud-stage.dpd.com/api/v1/setOrder';
    IdHTTP1.Request.ContentType := 'text/xml; charset=utf-8';
    IdHTTP1.Post(IdHTTP1.Request.URL,MSRequest,MSResponse);
In der Antwort erhalte ich nur Fehler bezüglich Authentifizierung und Versions Nr usw.
Da die Versionsnummer aber übermittelt wird, hat das für mich ja den Anschein, dass die XML-Datei nicht ankommt oder nicht gelesen werden kann

Request:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<setOrderRequest>
  <Version>100</Version>
  <Language>de_DE</Language>
  <PartnerCredentials>
    <Name>xxxx</Name>
    <Token>xxxxxx</Token>
  </PartnerCredentials>
  <UserCredentials>
    <cloudUserID>xxxx</cloudUserID>
    <Token>xxxxxxxxx</Token>
  </UserCredentials>
  <OrderAction>startOrder</OrderAction>
  <OrderSettings>
    <ShipDate>2018-01-08T11:18:09</ShipDate>
    <LabelSize>PDF_A4</LabelSize>
    <LabelStartPosition>UpperLeft</LabelStartPosition>
  </OrderSettings>
  <OrderDataList>
    <OrderData>
      <ShipAdress>
        <Gender>male</Gender>
        <Company>xxx</Company>
        <Salutation>Herr</Salutation>
        <Name></Name>
        <FirstName>xxx</FirstName>
        <LastName>xxx</LastName>
        <Street>xxx</Street>
        <HouseNo>6</HouseNo>
        <Country>DE</Country>
        <ZipCode>xxx</ZipCode>
        <City>Drebber</City>
        <State></State>
        <Phone>xxx</Phone>
        <Mail>xxx</Mail>
      </ShipAdress>
      <ParcelData>
        <ShipService>Classic</ShipService>
        <Weight>10.5</Weight>
        <Content>xxx</Content>
        <YourInternalID>123456</YourInternalID>
        <Reference1>Knr.: 5555</Reference1>
        <Reference2>Auftrags.-Nr.: 123456</Reference2>
      </ParcelData>
    </OrderData>
  </OrderDataList>
</setOrderRequest>
Code:

<?xml version="1.0"?>
<setOrderResponseType xmlns="http://schemas.datacontract.org/2004/07/com.dpd.cloud.business.apiPublic" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <Ack>false</Ack>
   <ErrorDataList>
      <ErrorDataType>
         <ErrorCode>CLOUD_API_PARTNERCREDENTIALS</ErrorCode>
         <ErrorID>2000</ErrorID>
         <ErrorMsgLong>'Partner Credentials' ungültig.</ErrorMsgLong>
         <ErrorMsgShort>'Partner Credentials' ungültig.</ErrorMsgShort>
      </ErrorDataType>
      <ErrorDataType>
         <ErrorCode>CLOUD_API_VERSION</ErrorCode>
         <ErrorID>2004</ErrorID>
         <ErrorMsgLong>Die angegebene API Version ist ungültig. Letzte API Version derzeit = 100.</ErrorMsgLong>
         <ErrorMsgShort>API Version ungültig.</ErrorMsgShort>
      </ErrorDataType>
      <ErrorDataType>
         <ErrorCode>CLOUD_API_LANGUAGE</ErrorCode>
         <ErrorID>2005</ErrorID>
         <ErrorMsgLong>The API language versions are'de_DE' for German and 'en_EN' for English.</ErrorMsgLong>
         <ErrorMsgShort>Language: 'de_DE' or 'en_EN'</ErrorMsgShort>
      </ErrorDataType>
   </ErrorDataList>
   <LabelResponse i:nil="true" xmlns:d2p1="http://schemas.datacontract.org/2004/07/com.dpd.cloud.business"/>
   <Language/>
   <SystemInformation i:nil="true"/>
   <TimeStamp>2018-01-08T11:11:27.5565912+01:00</TimeStamp>
   <Version>0</Version>
</setOrderResponseType>
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
ben86

Registriert seit: 6. Sep 2019
1 Beiträge
 
#13

AW: HTTPRio + SSL

  Alt 6. Sep 2019, 15:07
Hast du eine Lösung für dein Problem gefunden? Wäre interessant weil ich jetzt Jahre später genau das gleiche Problem habe....^^
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: HTTPRio + SSL

  Alt 6. Sep 2019, 17:02
Soweit ich den obigen Code anschaue, fehlt da der ganze SOAP-Envelope Teil drumherum. Mit anderen Worten, das XML ist nicht SOAP-konform. HTTPRio macht das normalerweise richtig. Der direkte Aufruf mit Indy ohne SOAP-Teil kann daher nicht gehen. Verwende die Delphi Klassen die vom WDSL Importer erstellt wurden mit HTTPRio.

Das Ganze hat aber nicths mit SSL zu tun. Ob du also wirklich das selbe Problem hast, musst du genauer mitteilen.

Hier mal ein Beispiel einer Anfrage an einen SOAP-Dienst, wie der sein müsste:

Code:
HTTP Header
-----------
POST /soap HTTP/1.1
SOAPAction: ""
Content-Type: text/xml
User-Agent: Borland SOAP 1.2
Host: 172.17.211.8:8080
Content-Length: 1882
Connection: Keep-Alive
Cache-Control: no-cache

Post-Daten:
----------
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <SOAP-ENV:Body>
      <CreateLabelRequest xmlns="urn:labelprintWs">
         <printer></printer>
         <parcelNumber></parcelNumber>
         <serviceCode>NP</serviceCode>
         <customerBarcode1>123456789-1</customerBarcode1>
         <customerBarcode2>234567891</customerBarcode2>
         <customerBarcode3>345678911</customerBarcode3>
         <customerBarcode4>456789111</customerBarcode4>
         <receiverName1>Max Mustermann</receiverName1>
         <receiverName2>Name 2</receiverName2>
         <receiverName3>Name 3</receiverName3>
         <receiverStreet>Bahnweg 29</receiverStreet>
         <receiverCity>Testlingen</receiverCity>
         <receiverZipCode>5000</receiverZipCode>
         <receiverCountry>CH</receiverCountry>
         <receiverPhone>099 999 99 99</receiverPhone>
         <senderName1>Test Meier</senderName1>
         <senderName2>EDV Abteilung</senderName2>
         <senderStreet>Mustergasse 2</senderStreet>
         <senderZipCode>5555</senderZipCode>
         <senderCity>Testlingen</senderCity>
         <senderCountry>CH</senderCountry>
         <countParcelsOfShipment>3</countParcelsOfShipment>
         <numberOfThisParcelInShipment>1</numberOfThisParcelInShipment>
         <weight>2.500</weight>
         <delisId>KD30000</delisId>
         <predictNotificationLanguage>DE</predictNotificationLanguage>
         <predictContactData>Kontakt / 099 999 99 99</predictContactData>
      </CreateLabelRequest>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Als Antwort kommt dann sowas retour:
Code:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <ns3:CreateLabelResponse xmlns:ns3="urn:labelprintWs">
            <success>true</success>
            <message>success</message>
            <parcelNumber>06086068925645</parcelNumber>
            <labelId>233</labelId>
            <base64pdf></base64pdf>
            <additionalInfo></additionalInfo>
        </ns3:CreateLabelResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Aber wie gesagt, dieser ganze Datenverkehr mach die HTTPRio Komponente automatisch und du musst nur die erzeugten Klassen nutzten ohne darüber nachzudenken, wie du das übertragen musst. Das Delphi SOAP Framework macht das alles für dich.

Geändert von Rolf Frei ( 6. Sep 2019 um 17:09 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:40 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