Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Datenübertragung via HTTP POST (https://www.delphipraxis.net/211894-datenuebertragung-via-http-post.html)

DeddyH 21. Nov 2022 12:15

AW: Datenübertragung via HTTP POST
 
Dann hast Du wohl einen Fehler in Deinem Code. Da wir den aber nicht kennen, können wir auch nicht sagen, wo genau.

lucy 21. Nov 2022 12:19

AW: Datenübertragung via HTTP POST
 
Zitat:

Dann hast Du wohl einen Fehler in Deinem Code. Da wir den aber nicht kennen, können wir auch nicht sagen, wo genau.
der Code ist doch bekannt : :-)

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
 var
  lParamList: TStringList;
begin
  lParamList := TStringList.Create;
  lParamList.Add('{');
  lParamList.Add('"message":"test message",');
  lParamList.Add('"type":"TEST",');
  lParamList.Add('"sender":"self",');
  lParamList.Add('"timestamp":"1424950740000"');
  lParamList.Add('}');
  try
    memo1.Lines.Text := idHTTP1.Post('http://192.168.0.5/rest/external/http', lParamList);
  finally
    lParamList.Free;
 end;
end;

DeddyH 21. Nov 2022 13:31

AW: Datenübertragung via HTTP POST
 
Sind denn die Parameter für Accept und Content-Type richtig gesetzt (siehe mjustins Beitrag)?
Delphi-Quellcode:
 HTTP.Request.Accept := 'application/json';
        HTTP.Request.ContentType := 'application/json';

lucy 21. Nov 2022 13:59

AW: Datenübertragung via HTTP POST
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Sind denn die Parameter für Accept und Content-Type richtig gesetzt (siehe mjustins Beitrag)?
nein hatte ich nicht.

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  lParamList: TStringList;
begin
  lParamList := TStringList.Create('{"日本語":42}',TEncoding.UTF8); // Fehlermeldung
  lParamList.Add('{');
  lParamList.Add('"message":"test message",');
  lParamList.Add('"type":"TEST",');
  lParamList.Add('"sender":"self",');
  lParamList.Add('"timestamp":"1424950740000"');
  lParamList.Add('}');
  try
    idHTTP1.Request.Accept := 'application/json';
    idHTTP1.Request.ContentType := 'application/json';
    memo1.Lines.Text := idHTTP1.Post('http://192.168.0.5/rest/external/http', lParamList);
  finally
    lParamList.Free;
  end;
end;

DeddyH 21. Nov 2022 14:48

AW: Datenübertragung via HTTP POST
 
Mal tust Du zu wenig, mal zuviel. Wenn schon, dann mit einem TStringStream statt einer TStringList.
Delphi-Quellcode:
var
  lParamList: TStringStream;
begin
  lParamList := TStringStream.Create('',TEncoding.UTF8); // Fehlermeldung sollte jetzt verschwinden
  lParamList.WriteString('{');
  lParamList.WriteString('"message":"test message",');
  lParamList.WriteString('"type":"TEST",');
  lParamList.WriteString('"sender":"self",');
  lParamList.WriteString('"timestamp":"1424950740000"');
  lParamList.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', lParamList);
  finally
    lParamList.Free;
  end;

lucy 21. Nov 2022 15:27

AW: Datenübertragung via HTTP POST
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Mal tust Du zu wenig, mal zuviel. Wenn schon, dann mit einem TStringStream statt einer TStringList.
Ja :oops: jetzt geht es! danke

DeddyH 21. Nov 2022 15:38

AW: Datenübertragung via HTTP POST
 
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.

lucy 22. Nov 2022 06:16

AW: Datenübertragung via HTTP POST
 
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.

DeddyH 22. Nov 2022 07:27

AW: Datenübertragung via HTTP POST
 
SuperObject
System.JSON (gab es wohl bereits unter XE7)

lucy 22. Nov 2022 08:38

AW: Datenübertragung via HTTP POST
 
Liste der Anhänge anzeigen (Anzahl: 1)
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.
Seite 2 von 3     12 3      

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