Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   idhttp post Fehlermeldung Bad Request 400 (https://www.delphipraxis.net/216009-idhttp-post-fehlermeldung-bad-request-400-a.html)

lucy 11. Okt 2024 12:24

idhttp post Fehlermeldung Bad Request 400
 
hallo,

wenn ich im String ein Leerzeichen habe (Test Test) kommt die Fehlermeldung. Bad Request 400

wie kann ich einen normalen Text mit Leerzeichen senden? (POST)

Delphi-Quellcode:
      begin
         lParamList := TStringList.Create;
         lParamList.Add('HTTP/1.1');
          try
            idHTTP1.Post('http://192.168.0.174/gateway_pocsag_alpha.php?line=1164001;9;Test Test' , lParamList);
           finally
          lParamList.Free;
         end;
        end;
       end else begin
       Memo1.Clear;
    end;

Bernhard Geyer 11. Okt 2024 12:37

AW: idhttp post Fehlermeldung Bad Request 400
 
html-Escaping nutzen: <Leeerzeichen> = %20

https://docs.microfocus.com/OMi/10.6...L_encoding.htm

Delphi.Narium 11. Okt 2024 12:40

AW: idhttp post Fehlermeldung Bad Request 400
 
Oder (je nach Delphiversion) die passende Funktion benutzen:

https://docwiki.embarcadero.com/Libr...TURI.URLEncode

Bei den Indys ist in der unit IdURI die Funktion URLEncode zu finden.

lucy 11. Okt 2024 13:09

AW: idhttp post Fehlermeldung Bad Request 400
 
mit lParamList.Add('utf-8'); geht es auch nicht :-(
Delphi-Quellcode:
        begin
         lParamList := TStringList.Create;
         lParamList.Add('HTTP/1.1');
         lParamList.Add('utf-8');
          try
            idHTTP1.Post('http://192.168.0.174/gateway_pocsag_alpha.php?line=1164001;9;Test ' , lParamList);
           finally
          lParamList.Free;
         end;
        end;
       end else begin
       Memo1.Clear;
    end;

Delphi.Narium 11. Okt 2024 13:25

AW: idhttp post Fehlermeldung Bad Request 400
 
Warum sollte es? In Urls müssen Sonderzeichen kodiert werden. Dafür hat Delphi entsprechende Funktionen (s. o.)

Ungefähr sowas?
Delphi-Quellcode:
var
  encodedParams : String;
begin
  lParamList := TStringList.Create;
  lParamList.Add('HTTP/1.1');
  lParamList.Add('utf-8');
  try
    encodedParams := TIdURI.ParamsEncode('line=1164001;9;Test ');
    idHTTP1.Post('http://192.168.0.174/gateway_pocsag_alpha.php?' + encodedParams, lParamList);
  finally
    lParamList.Free;
  end;
end;

lucy 11. Okt 2024 13:34

AW: idhttp post Fehlermeldung Bad Request 400
 
Jetzt habe ich es verstanden :-) danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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