AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) API den Wert (als JSON) in der Header übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

API den Wert (als JSON) in der Header übergeben

Ein Thema von seaduck · begonnen am 31. Aug 2020 · letzter Beitrag vom 1. Sep 2020
Antwort Antwort
seaduck

Registriert seit: 31. Aug 2020
3 Beiträge
 
#1

API den Wert (als JSON) in der Header übergeben

  Alt 31. Aug 2020, 13:45
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.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: API den Wert (als JSON) in der Header übergeben

  Alt 31. Aug 2020, 20:39
Also von allein passiert da natürlich nix mit JSON.

Wenn du gültiges JSON schicken musst, dann ist das natürlich nicht richtig: rClient.SetHTTPHeader('X-Auth-Token','123'); Was eher gehen könnte: rClient.SetHTTPHeader('X-Auth-Token','{ token: 123 }'); 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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: API den Wert (als JSON) in der Header übergeben

  Alt 1. Sep 2020, 07:07
JSON-Daten im Header sind aber auch recht ungewöhnlich. Bist Du sicher, dass Du das richtig verstanden hast?
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
seaduck

Registriert seit: 31. Aug 2020
3 Beiträge
 
#4

AW: API den Wert (als JSON) in der Header übergeben

  Alt 1. Sep 2020, 11:07
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?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: API den Wert (als JSON) in der Header übergeben

  Alt 1. Sep 2020, 11:30
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.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
seaduck

Registriert seit: 31. Aug 2020
3 Beiträge
 
#6

AW: API den Wert (als JSON) in der Header übergeben

  Alt 1. Sep 2020, 13:11
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.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: API den Wert (als JSON) in der Header übergeben

  Alt 1. Sep 2020, 13:30
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.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 12:17 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