![]() |
AW: rest server wie muss das post command aussehen
Hast du denn mal versucht, einen POST Request per cURL an den Server zu senden? Nicht das dein Delphi Code evtl. nur einen Fehler hat. Oder per PowerShell mit Invoke-WebRequest? Du könntest auch PostMan dafür verwenden, aber cURL sollte in dem Fall zum Testen bereits ausreichen.
|
AW: rest server wie muss das post command aussehen
Mein Problem ist das ich normal nicht viel mit Servern zu tun habe. Ich rate mit der Syntax nur rum. Leider finde ich trotz tagelanger suche nicht wirklich was brauchbares. Ein Beispiel für einen einfachen Server in dem Postdata empfangen und verarbeitet werden würden mir schon reichen. Ich dachte das wäre auch mit einem Restserver einfach zu lösen... zumal es ja über einfache Browserzeile funktioniert.
|
AW: rest server wie muss das post command aussehen
Ein Browser sendet bei einer Eingabe in die Adresszeile aber immer nur ein GET Request. Ist denn überhaupt sichergestellt, dass dein Server POST Requests akzeptiert?
|
AW: rest server wie muss das post command aussehen
Genau das ist ja die Frage. Wie muss ich den Server einstellen, damit er post empfängt und wie verarbeite ich diese. Ich dachte das ein Server der mit get umgehen kann auch post Daten verarbeiten kann. Falls nein Was muss ich am Server tun damit er Post Daten empfangen kann?
als beispiel von Telegramm The short version You'll need a server that: Supports IPv4, IPv6 is currently not supported for Webhooks. Accepts incoming POSTs from subnets 149.154.160.0/20 and 91.108.4.0/22 on port 443, 80, 88, or 8443. und eine Post message von Telegramm sähe so aus.
Delphi-Quellcode:
curl --tlsv1 -v -k -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
"update_id":10000, "message":{ "date":1441645532, "chat":{ "last_name":"Test Lastname", "id":1111111, "first_name":"Test", "username":"Test" }, "message_id":1365, "from":{ "last_name":"Test Lastname", "id":1111111, "first_name":"Test", "username":"Test" }, "text":"/start" } }' "https://YOUR.BOT.URL:YOURPORT/" Wie muss ich welchen Server aufsetzen damit ich diese Daten empfangen und lesen kann. |
AW: rest server wie muss das post command aussehen
Zitat:
Deine "ReverseString-Action" mit der du testest ist wohl als "GET-Action" deklariert. |
AW: rest server wie muss das post command aussehen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Gibt es irgendwo Beispiele in die ich mich einlesen kann um den Code zu schreiben? Weil Google gibt nicht wirklich was dazu her *seuftz* Aber dickes DANKE! Da bin ich schon mal einen kleinen Schritt weiter |
AW: rest server wie muss das post Command aussehen oder welchen Server könnte ich ver
Bei MethodType würde ich noch mtPost angeben, ansonsten sieht es schon mal gut aus.
Im onAction kannst du sowas machen:
Delphi-Quellcode:
Aufrufen musst du das ganze dann mit ".../webhook".
var
S: String; begin S := Request.Content; S := 'Empfangen: ' + S; // Daten verarbeiten Response.Content := S; end; |
AW: rest server wie muss das post Command aussehen oder welchen Server könnte ich ver
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
auf der Clientseite sieht es so aus
Delphi-Quellcode:
und ich erhalte folgende Meldung {"error":"Methode TServerMethods1.updateWebhook in der Servermethodenliste nicht gefunden"}
procedure TfClient.btn1Click(Sender: TObject);
const Url = 'https://alpt.kxmwm3epa9wmpje7.myfritz.net/datasnap/rest/TServerMethods1/Webhook'; var LsList: TStringList; LsStream: TStringStream; begin LsList := TStringlist.Create; try LsStream := TStringStream.Create; try LsList.Add('abc=Test Client'); nthtprqst1.Post(Url,LsList,LsStream) ; mmo1.Lines.Add(UTF8Decode(LsStream.DataString)); finally LsStream.Free; end; // try finally LsList.Free; end; // try end; vorher bekam ich {"error":"Methode TServerMethods1.Webhook in der Servermethodenliste nicht gefunden"} darauf wurde
Delphi-Quellcode:
hinzugefügt.
type
TServerMethods1 = class(TDSServerModule) private { Private-Deklarationen } public { Public-Deklarationen } function EchoString(Value: string): string; function ReverseString(Value: string): string; function Webhook(Value: string): string; end; function TServerMethods1.Webhook(Value: string): string; begin Result := Value; fConnect.Memo1.Lines.Add('Webhook ' + Result); end; Die
Delphi-Quellcode:
ist wie von @Olli73 angegeben über onAction bearbeitet. siehe Bild
procedure TWebModule1.WebModule1WebhookAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); var S: String; begin S := Request.Content; S := 'Empfangen: ' + S; // Daten verarbeiten fWebhook.mmo('TWebModule1.WebModule1Webhook : ' + Request.Content ); Response.Content := S; end; Was mich wundert ist ich sende an
Delphi-Quellcode:
"webhook"
https://alpt.kxmwm3epa9wmpje7.myfritz.net/datasnap/rest/TServerMethods1/Webhook
und ich erhalte einen Fehler weil
Delphi-Quellcode:
"updatewebhook fehlt.
{"error":"Methode TServerMethods1.updateWebhook in der Servermethodenliste nicht gefunden"}
Ich google nun schon eine weile weil ich nicht weiß was in die function rein muss die er haben möchte. bin aber noch nicht fündig geworden. Wenn Olli73 oder andere noch Tipps hätten wäre das kurz vor dem Ziel super.. |
AW: rest server wie muss das post Command aussehen oder welchen Server könnte ich ver
kleines update
von mir wurde nun in ServerMethods1
Delphi-Quellcode:
die function eingebaut. neue fehlermeldung ist nun von der Clientseite
function TServerMethods1.updateWebhook(Value: string): string;
begin Result := Value; fConnect.Memo1.Lines.Add('Webhook ' + Result); end;
Delphi-Quellcode:
{"error":"Nachrichteninhalt ist kein g\u00FCltiger JSON-Wert."}
|
AW: rest server wie muss das post Command aussehen oder welchen Server könnte ich ver
update...
auf der Clentseite habe ich nun Json eingefügt.
Delphi-Quellcode:
procedure TfClient.btn1Click(Sender: TObject);
const Url = 'https://alpt.kxmwm3epa9wmpje7.myfritz.net/datasnap/rest/TServerMethods1/Webhook'; var LsList: TStringList; LsStream: TStringStream; begin LsList := TStringlist.Create; try LsStream := TStringStream.Create; try LsList.Add('{"Hasta":"Lavista Baby "}'); nthtprqst1.Post(Url,LsList,LsStream) ; mmo1.Lines.Add(UTF8Decode(LsStream.DataString)); finally LsStream.Free; end; // try finally LsList.Free; end; // try end; als Result bekomme ich nun auf der Clientseite
Delphi-Quellcode:
{"result":[""]}
und auf dem server bleibt das Json "verschollen". wenn wenn mir nun noch jemand helfen könnte das im Nirvana verschollene Json zu finden, wäre das super... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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