![]() |
API den Wert (als JSON) in der Header übergeben
Hallo,
ich versuche in Delphi über den Restclient einen Request mit der URL: 'http://..........invoices/id-f6155722/paid' erfolgreich zu implementieren. In der Header sollte die bestimmte ID: id-f6155722 als JSON übergeben werden. Ich habe rClient.SetHTTPHeader('Content- Type', 'application/json'); rClient.SetHTTPHeader('X-Auth-Token','XXXXXXXXXXXXXXX'); die Header Parameter so wie es sein sollte gesetzt. Eine Autorisation ist nicht nötig. Im Browser bekomme ich den Status Code: 400, über Delphi den Status Code: 404 mit der gleiche PUT Anweisung. Wenn ich den Parameter: id-f6155722 in die geschleiften Klammer setzte dann kommt über Delphi ein Status Code: 415, also gehe ich stark davon aus, dass die Header in Delphi nicht als JSON gesetzt wird und an dem Server nicht als JSON übermittelt wird. Was könnte ich machen? Danke vorab. |
AW: API den Wert (als JSON) in der Header übergeben
Also von allein passiert da natürlich nix mit JSON.
Wenn du gültiges JSON schicken musst, dann ist das natürlich nicht richtig:
Delphi-Quellcode:
Was eher gehen könnte:
rClient.SetHTTPHeader('X-Auth-Token','123');
Delphi-Quellcode:
Aber letztlich fehlen mir da die Infos, was du machst und was du machen solltest. Falls du nicht mehr rausgeben kannst, empfehle ich dir Postman um den Request erstmal ohne Delphi nachzubauen und dann kannst du das in Delphi nachbauen.
rClient.SetHTTPHeader('X-Auth-Token','{ token: 123 }');
|
AW: API den Wert (als JSON) in der Header übergeben
JSON-Daten im Header sind aber auch recht ungewöhnlich. Bist Du sicher, dass Du das richtig verstanden hast?
|
AW: API den Wert (als JSON) in der Header übergeben
Guten Morgen,
ich habe den RestTDebugger genutzt und sogar in dem Debbuger mit allen nötigen Konfigurationen wie in einem Browser mit RestClien- Erweiterung habe ich keinen Erfolg. Es muss an die Url: 'https://dev. ...........ices/inv-f6155722-1eac-42d5-a43d-e4a7fa29a/paid' in dem header die invoice nr.: inv-f6155722-1eac-42d5-a43d-e4a7fa29a als JSON übergeben werden. Die Zeile: "rClient.SetHTTPHeader('X-Auth-Token','{ token: 123 }');" könnte ich nicht modifizieren, weil ich schon den Key -H "X-Auth-Token: $API_KEY" übergebe. Mit dem RestTDebugger bekomme ich die Fehlermeldeung: Status code: 500 Internel Server Error. Vielleicht sollte man mehrere CustomHeader- Modifikationen erstellen: 1) mit Authentifiezierung, 2) mit Übergabe Parameter? Ist das überhaupt in Delphi 10 möglich in der Header ein Teil oder die gesamte Header als JSON an der externen Server erfolgreich zu übergeben? |
AW: API den Wert (als JSON) in der Header übergeben
Ich bin mir wie DeddyH fast sicher, dass du kein JSON im Header übergeben sollst.
Gerade da du Content-Type application/json übergibst, sieht es danach aus als sollte das JSON im Body stehn und nicht im Header. Ist die Dokumentation für die API die du da ansprechen willst öffentlich? Dann könntest du die mal hier verlinken. Das würde glaube ich helfen. |
AW: API den Wert (als JSON) in der Header übergeben
Hallo,
ich kann keine Details mehr preisgeben, geht nicht. Vielen Dank für die Hilfe, ich habe mit RestTDebbug alle Möglichkeiten ausprobiert, ich bin auch der Meinung, dass man in der Header keinen Wert als JSON übergeben könnte, zu mindestens bietet Delphi (10) das nicht an. |
AW: API den Wert (als JSON) in der Header übergeben
Du kannst im Header jeden String übergeben den du willst. Der String kann auch JSON sein. Sehe keinen Grund warum das rein technisch nicht funktionieren sollte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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