AGB  ·  Datenschutz  ·  Impressum  







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

DHL-API mit RESTClient

Ein Thema von Ykcim · begonnen am 8. Jan 2025 · letzter Beitrag vom 10. Jan 2025
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#1

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 11:27
Bist Du sicher, dass Du das API-Secret nicht auch mit übergeben musst (klassischerweise ebenfalls als Header, möglicherweise mit einem vorangestellten "Bearer ")?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#2

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 11:35
Nein, dass weiß ich nicht.

Aber wie würde ich bei meiner Function einen Header eingeben? Ich habe es jetzt so versucht:

Delphi-Quellcode:
function cUrlCall: string;
var client : TRESTClient;
      request : TRESTRequest;
begin
   client := TRESTClient.Create('https://api-eu.dhl.com');
   try
      client.SetHTTPHeader('DHL-API-Key','xxXXXxxXXXXXxxXX');
      request := TRESTRequest.Create(client);
      request.Method := rmGet;
      request.Resource := 'track/shipments';
      request.AddParameter('trackingNumber', '00341434296527125347', pkGETorPOST, []);
      request.Execute;
      Result:= request.GetFullRequestURL;
      Result := Result + ' // Result:' + request.Response.Content;
   finally
      client.Free;
   end;
end;
Leider bekomme ich nach wie vor das Ergebnis:
Code:
Result:{"status":401,"title":"Unauthorized","detail":"Unauthorized for given resource."}
Patrick
  Mit Zitat antworten Zitat
Kas Ob.

Registriert seit: 3. Sep 2023
390 Beiträge
 
#3

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 11:50
Nein, dass weiß ich nicht.

Aber wie würde ich bei meiner Function einen Header eingeben? Ich habe es jetzt so versucht:

Delphi-Quellcode:
function cUrlCall: string;
var client : TRESTClient;
      request : TRESTRequest;
begin
   client := TRESTClient.Create('https://api-eu.dhl.com');
   try
      client.SetHTTPHeader('DHL-API-Key','xxXXXxxXXXXXxxXX');
      request := TRESTRequest.Create(client);
      request.Method := rmGet;
      request.Resource := 'track/shipments';
      request.AddParameter('trackingNumber', '00341434296527125347', pkGETorPOST, []);
      request.Execute;
      Result:= request.GetFullRequestURL;
      Result := Result + ' // Result:' + request.Response.Content;
   finally
      client.Free;
   end;
end;
Leider bekomme ich nach wie vor das Ergebnis:
Code:
Result:{"status":401,"title":"Unauthorized","detail":"Unauthorized for given resource."}
From DHL documentation i see these :
https://developer.dhl.com/api-refere...de--get-access
https://developer.dhl.com/api-refere...e-docs-section

So the question is did you replaced xxXXXxxXXXXXxxXX with your actual key ?
Try that with curl and don't post your key here.
just try with curl until it does work, also you might want to switch to the DHL test server
https://developer.dhl.com/api-refere...e-docs-section
Kas
  Mit Zitat antworten Zitat
Kas Ob.

Registriert seit: 3. Sep 2023
390 Beiträge
 
#4

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 11:56
One more thing, i don't have TRESTClient, so may be someone here can help or suggest how to add HTTP header.
Kas
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 12:07
Hi Kas,

thanks for support. At first: Yes I changed the API-Key and I used the provided Key from DHL. Only for the Forum I changed it to xxXXXxxXXXXXxxXX.

I tried it on the DHL-Page, but also there I get the same result:
Code:
{
  "status": 401,
  "title": "Unauthorized",
  "detail": "Unauthorized for given resource."
}
I wrote an ticket to the support. Maybe the problem is not on my site...
Patrick
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.166 Beiträge
 
Delphi 12 Athens
 
#6

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 12:13
Perhaps the rate limit kicks in, if all failed attemps will be counted too?
Maybe tomorrow is another day
  Mit Zitat antworten Zitat
Kas Ob.

Registriert seit: 3. Sep 2023
390 Beiträge
 
#7

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 12:15
Perhaps the rate limit kicks in, if all failed attemps will be counted too?
Maybe tomorrow is another day
That is exactly why i suggested to switch to test server, usually test server response sometime with real value for something like return tracking status, but it depends on the load, as for other functionality like creating shipment it will be unlimited and not for real production.
Kas
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.115 Beiträge
 
Delphi 2009 Professional
 
#8

AW: DHL-API mit RESTClient

  Alt 8. Jan 2025, 12:45
Wenn alle Stricke reißen, gäbe es noch Drittanbieter. Wir haben Sendcloud in unserer Delphi-Anwendung integriert, weil die in jedem Tarif eigene Verträge und API können. Kostet natürlich Geld. Bei DPD haben sie öfter Probleme mit Verfügbarkeit, aber andere Versanddienstleister funktionieren zuverlässiger.
Janni
2005 PE, 2009 PA, XE2 PA
  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 04:35 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