AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Datenübertragung via HTTP POST

Datenübertragung via HTTP POST

Ein Thema von lucy · begonnen am 18. Nov 2022 · letzter Beitrag vom 22. Nov 2022
Antwort Antwort
lucy

Registriert seit: 25. Okt 2017
84 Beiträge
 
Delphi XE7 Starter
 
#1

AW: Datenübertragung via HTTP POST

  Alt 21. Nov 2022, 15:27
Zitat:
Mal tust Du zu wenig, mal zuviel. Wenn schon, dann mit einem TStringStream statt einer TStringList.
Ja jetzt geht es! danke
Angehängte Grafiken
Dateityp: jpg bild1.JPG (13,3 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Datenübertragung via HTTP POST

  Alt 21. Nov 2022, 15:38
Du solltest das JSON-Objekt nicht händisch zusammenbasteln wie im Beispiel, sondern eine Bibliothek dafür verwenden. Ich weiß nicht mehr, ob es System.JSON unter XE7 bereits gab, aber alternativ kannst Du ja einmal nach SuperObject googlen.
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
lucy

Registriert seit: 25. Okt 2017
84 Beiträge
 
Delphi XE7 Starter
 
#3

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 06:16
Zitat:
Du solltest das JSON-Objekt nicht händisch zusammenbasteln wie im Beispiel, sondern eine Bibliothek dafür verwenden. Ich weiß nicht mehr, ob es System.JSON unter XE7 bereits gab, aber alternativ kannst Du ja einmal nach SuperObject googlen.
würde mich schon interessieren! habe aber leider noch nichts brauchbares gefunden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 07:27
SuperObject
System.JSON (gab es wohl bereits unter XE7)
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
lucy

Registriert seit: 25. Okt 2017
84 Beiträge
 
Delphi XE7 Starter
 
#5

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 08:38
Zitat:
SuperObject
System.JSON (gab es wohl bereits unter XE7)
danke schaue ich mir an!

teste gerade noch ein wenig, habe hier noch einen Fehler!
verstehe ich nicht ??
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
 ParamList : TStringStream;
begin

  ParamList := TStringStream.Create('', TEncoding.UTF8);
  ParamList.WriteString('{');
  ParamList.WriteString('"message":"test message",');
  ParamList.WriteString('"type":"ALARM",');
  ParamList.WriteString('"sender":"192.168.0.217",');
  ParamList.WriteString('"timestamp":"1424950740000",');
  ParamList.WriteString('"data":{"address": "'(Edit1.Text)'"}'); //pas(49) ist doch gesetzt! // oder muss ich noch ein strtoint(Edit1.Text) setzen
  ParamList.WriteString('}');
try
   idHTTP1.Request.Accept := 'application/json';
   idHTTP1.Request.ContentType := 'application/json';
   memo1.Lines.Text := idHTTP1.Post('http://192.168.0.5/rest/external/http', ParamList);
finally
  ParamList.Free;
 end;
end;
Angehängte Grafiken
Dateityp: jpg bild1.JPG (14,0 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.782 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 08:52
ParamList.WriteString('"data":{"address": "'+Edit1.Text+'"}'); .. so könnte es passen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
337 Beiträge
 
Delphi 12 Athens
 
#7

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 14:22
Tu dir aber selbst einen gefallen und nutze die JSON Frameworks die es schon gibt. Es ist natürlich gut zu verstehen was läuft und wie etwas aufgebaut ist, aber im fertigen Code würde ich immer auf das gehen, was man danach besser versteht bzw. weitere Verbreitung hat. Dein Code würde mit der system.JSON unit umgesetzt so aussehen.

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  myJSONObj: TJSONObject;
  myDataObj: TJSONObject;
begin

  myJSONObj := TJSONObject.Create;
  try
    myJSONObj.AddPair('message', 'test message');
    myJSONObj.AddPair('type', 'ALARM');
    myJSONObj.AddPair('sender', '192.168.0.217');
    myJSONObj.AddPair('timestamp', '1424950740000');
    myJSONObj.AddPair('sender', '192.168.0.217');
    myDataObj := TJSONObject.Create;
      myDataObj.AddPair('address', Edit1.text);
      myJSONObj.AddPair('data', myDataObj);
      try
        IdHTTP1.Request.Accept := 'application/json';
        IdHTTP1.Request.ContentType := 'application/json';
        Memo1.Lines.text := IdHTTP1.Post('http://192.168.0.5/rest/external/http', myJSONObj.ToJSON);
      except
        on e: Exception do
          ShowMessage('Huch, was ist denn da passiert? - ' + e.Message);

      end

  finally
    myJSONObj.free;
  end;

end;

Geändert von fisipjm (22. Nov 2022 um 15:10 Uhr) Grund: Hinweis von DeddyH
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Datenübertragung via HTTP POST

  Alt 22. Nov 2022, 14:54
Sicher, dass es nicht knallt, wenn Du ein "Kind-JSONObjekt" selbst freigibst?
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
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:19 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