Hallo Cyberaxx,
wandle niemals Umlaute oder irgendwelche Zeichen in der
Indy HTTP Komponente manuell um. Die kann das ganz alleine.
1. Für die
URL Zeile gibt es die wunderbare Funktion HTTPEncode() aus der
Unit HTTPApp.
2. Bei AddFormField wählst du ein CharSet, dadurch weiß die Komponente genau wie sie es zu kodieren hat.
Delphi-Quellcode:
var
Daten: TIdMultiPartFormDataStream;
Content:
string;
URL:
string;
begin
Daten := TIdMultiPartFormDataStream.Create;
try
Daten.AddFormField('
test', '
öäü -- ÖÄÜ', '
UTF-8').ContentTransfer := '
binary';
try
URL := Format('
%s?version=%s&test=%s', [edtHost.Text, HTTPEncode(edtVersion.Text), HTTPEncode('
ÖÄÜ')]);
IdHTTP1.Request.ContentType := '
multipart/form-data';
Content := IdHTTP1.Post(
URL, Daten);
EmbeddedWB1.LoadFromString(Content);
except
on E:
Exception do
ShowMessage('
Fehler: ' + #13#10 + E.
Message);
end;
finally
Daten.Free;
end;
Gerne kannst du dir auch mein Tutorial ansehen:
http://www.delphipraxis.net/160152-i...protokoll.html
EDIT: Hab die Parameterreihenfolge korrigiert
EDIT2: HTTPEncode(...) wendet man natürlich nur auf den GET-Parameterteil in der
URL an.
EDIT3: Wo ich gerade dabei bin;
application/x-www-form-urlencoded benutzt man bei TIdMultiPartFormDataStream nicht.