AGB  ·  Datenschutz  ·  Impressum  







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

DHL API über winhttp

Offene Frage von "Signum"
Ein Thema von Signum · begonnen am 5. Jan 2016 · letzter Beitrag vom 9. Jan 2016
Antwort Antwort
Signum

Registriert seit: 11. Sep 2008
5 Beiträge
 
Delphi 2007 Professional
 
#1

AW: DHL API über winhttp

  Alt 5. Jan 2016, 07:55
Hallo,

zur Zeit gehe ich über https://cig.dhl.de/services/sandbox/soap und teste das ganze mit einem CreateShipmentDDRequest

Ich hab mir auch die Komponente über WSDL erzeugt, aber noch nicht weiter getestet.

Da ich das ganze später auch in eine externen Prozess in C++ auslagern will, wäre mir winhttp lieber.

Wie sprecht Ihr den den Web-Service an?
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#2

AW: DHL API über winhttp

  Alt 5. Jan 2016, 08:05
Wie ist die API denn abgesichert? 401 könnte auch der Start einer Digest-Authentication sein. Dort wird die Challenge mit einem 401 geschickt und der Server wartet anschließend auf die Response.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#3

AW: DHL API über winhttp

  Alt 5. Jan 2016, 08:21
Wie sprecht Ihr den den Web-Service an?
Der Endpunkt https://nolb.dhl.de/nextt-online-bus...bpublicservlet wird über Indy's HTTP Komponente abgefragt.

Der Hinweis auf den 401 Status Code sehe ich als "besten Kandidaten" für die Fehlersuche. 401 ist allerdings nicht Digest-spezfisch. Es kan auch eine einfache Basic-Uathentication sein. Bei Aufruf des Endpunkts in meinem Browser erscheint ein Basic Auth Logindialog und im HTTP Antwortheader steht

WWW-Authenticate:"Basic realm="CIG Sandbox Services""
Michael Justin
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#4

AW: DHL API über winhttp

  Alt 5. Jan 2016, 08:23

zur Zeit gehe ich über https://cig.dhl.de/services/sandbox/soap und teste das ganze mit einem CreateShipmentDDRequest
Versuche einfach mal die Credentials direkt in der URL anzugeben

https://username:passwort@cig.dhl.de...s/sandbox/soap

(Siehe http://stackoverflow.com/questions/2...and-encryption)
Michael Justin
  Mit Zitat antworten Zitat
Signum

Registriert seit: 11. Sep 2008
5 Beiträge
 
Delphi 2007 Professional
 
#5

AW: DHL API über winhttp

  Alt 5. Jan 2016, 08:45
Die Zugangsdaten setze ich ja schon mit

WinHttpSetCredentials (hRequest, WINHTTP_AUTH_TARGET_SERVER, WINHTTP_AUTH_SCHEME_BASIC, UserName, Password, nil);

Wenn ich da falsche Daten angebe erfolgt auch eine klare Fehlermeldung im Response.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#6

AW: DHL API über winhttp

  Alt 5. Jan 2016, 08:51
Die Zugangsdaten setze ich ja schon mit

WinHttpSetCredentials (hRequest, WINHTTP_AUTH_TARGET_SERVER, WINHTTP_AUTH_SCHEME_BASIC, UserName, Password, nil);

Wenn ich da falsche Daten angebe erfolgt auch eine klare Fehlermeldung im Response.
Ok, als nächstes würde ich dann Fiddler2 als Proxy in die Verbindung einfügen und sehen, was sich bei WinHTTP anders verhält als bei SoapUI. Also beide Request / Responseprotokolle vergleichen.
Michael Justin
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#7

AW: DHL API über winhttp

  Alt 5. Jan 2016, 13:06
mhh bei Basic müsste Pre-Authentication eigentlich funktionieren. Fiddler ist auf jeden Fall das Mittel der Wahl.

Wenn man nicht mit Pre-Authentication arbeitet, dann sieht der Workflow für die Anmeldung laut MSDN übrigens so aus:
Zitat:
A typical WinHTTP application completes the following steps in order to handle authentication.
Request a resource with WinHttpOpenRequest and WinHttpSendRequest.
Check the response headers with WinHttpQueryHeaders.
If a 401 or 407 status code is returned indicating that authentication is required, call WinHttpQueryAuthSchemes to find an acceptable scheme.
Set the authentication scheme, username, and password with WinHttpSetCredentials.
Resend the request with the same request handle by calling WinHttpSendRequest.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#8

AW: DHL API über winhttp

  Alt 6. Jan 2016, 11:50
Aus purer Neugier: Warum eigentlich über WinHTTP?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#9

AW: DHL API über winhttp

  Alt 6. Jan 2016, 11:54
Aus purer Neugier: Warum eigentlich über WinHTTP?
Steht weiter oben:

Zitat:
Da ich das ganze später auch in eine externen Prozess in C++ auslagern will, wäre mir winhttp lieber.
Michael Justin
  Mit Zitat antworten Zitat
Signum

Registriert seit: 11. Sep 2008
5 Beiträge
 
Delphi 2007 Professional
 
#10

AW: DHL API über winhttp

  Alt 9. Jan 2016, 16:27
Das ganze wird voraussichtlich auch in einem reinen C++ Prozess eingesetzt. WinHTTP vereinfacht das ganze erheblich.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:03 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