Hallo
DP,
es ist spät und ich sehe schon weiße Mäuse.. aber mich wurmt folgendes: ich sende mit folgender Prozedur POST Daten ab:
Delphi-Quellcode:
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//submit_post
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
Procedure submit_post(url_string,EncodedStr:
string;amemo:TMemo);
var
aStream: TMemoryStream;
Params: TStringStream;
begin
aStream := TMemoryStream.create;
Params := TStringStream.create('
');
try
with Fmain.IdHTTP1
do
begin
Params.WriteString(URLEncode(EncodedStr));
Request.ContentType := '
application/x-www-form-urlencoded';
try
Response.KeepAlive := False;
Post(url_string, params, aStream);
except
on E:
Exception do showmessage('
Error encountered during POST: ' + E.
Message);
end;
end;
aStream.WriteBuffer(#0'
', 1);
aStream.Position := 0;
amemo.Lines.LoadFromStream(aStream);
except
aStream.Free;
Params.Free;
end;
end;
Das funktioniert auch soweit prima. In meinen Daten befindet sich aber manchmal ein Telefon-Ländercode:
+49 den ich genau so übertragen möchte. Leider ignoriert der Server das
+49 und macht daraus
49. Wenn ich es mit
%2B49 versuche, gibts als Antwort einen HTTP 1.1 Bad Request 400.
Liegt das an
Params.WriteString(URLEncode(EncodedStr));
?