![]() |
TRestRequest mit JSON im Body
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen,
wahrscheinlich zu blöd es zu verstehn. Ich bekomme keinen vernüftigen Post mit einem JSON im Body hin. Mit Postman funktioniert es. Hier mal die Postman Einstellungen mit den erfolgreichen Response Content - Siehe Anhang Hier die API Beschreibung: Anzeigen von Szenario Konfigurationen /api/alarm/v1/scenario/config/list Mittels HTTP POST Request mit dem Header: Content-Type: application/json auf die oben angebene URL kann man Szenario Konfiguration abrufen. username: string - Pflichtfeld - Benutzername password: string - Pflichtfeld - Passwort customerIds: Liste von strings - Pflichtfeld - Kundennummer Ein Beispiel: { "username" : "myUser", "password" : "mySuperSecretPwd", "customerIds" : ["100027"], } Und hier mein Versuch der immer HTTP-Code 406 zurück :(
Code:
RATLOS....
procedure TForm1.Button2Click(Sender: TObject);
var RESTClient: TRESTClient; RESTRequest: TRESTRequest; RESTResponse: TRESTResponse; slCustomerIds: TStringlist; begin try RESTClient := TRESTClient.Create(nil); RESTClient.BaseURL := 'https://api.blaulichtsms.net/blaulicht/api/alarm/v1/scenario/config/list'; try RESTResponse := TRESTResponse.Create(nil); RESTRequest := TRESTRequest.Create(nil); RESTRequest.Client := RESTClient; RESTRequest.Response := RESTResponse; RESTRequest.Method := rmPOST; // RESTRequest.Resource := 'api/alarm/v1/scenario/config/list'; RESTRequest.AddParameter('Content-Type', 'application/json', pkHTTPHEADER, [poDoNotEncode]); try slCustomerIds := TStringlist.Create; slCustomerIds.Add('{'); slCustomerIds.Add('"username" : "ag-api-contechnet",'); slCustomerIds.Add('"password" : "xxxxx",'); slCustomerIds.Add('"customerIds" : ["xxxxx"]'); slCustomerIds.Add('}'); finally RESTRequest.AddParameter('Body', slCustomerIds.Text, pkREQUESTBODY, [poDoNotEncode]); slCustomerIds.Free; end; RESTRequest.Execute; if RESTResponse.Status.Success then ShowMessage(RESTResponse.Content); finally RESTResponse.Free; RESTRequest.Free; end; finally RESTClient.Free; end; end; |
AW: TRestRequest mit JSON im Body
Benutz mal AddBody statt AddParameter
|
AW: TRestRequest mit JSON im Body
Zitat:
Code:
try
slCustomerIds := TStringlist.Create; slCustomerIds.Add('{'); slCustomerIds.Add('"username" : "ag-api-contechnet",'); slCustomerIds.Add('"password" : "xxxxx",'); slCustomerIds.Add('"customerIds" : ["xxxxx"]'); slCustomerIds.Add('}'); finally [B] RESTRequest.AddBody(slCustomerIds.Text,ctApplication_Json);[/B] slCustomerIds.Free; end; |
AW: TRestRequest mit JSON im Body
Hallo,
habe auch lange gebraucht. Bei mir funktioniert es mit:
Code:
RestRequest.AddPair('password', 'xxxxx');
Grüße |
AW: TRestRequest mit JSON im Body
Zitat:
Es soll aber im Body stehen oder versteh ich etwas nicht. |
AW: TRestRequest mit JSON im Body
Fehlt dir vielleicht ein Accept Header? Laut Internet bedeutet der 406 Code sowas:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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