Hi,
ich versuche mit IdHTTP einen POST an einen Server abzusetzen.
Code:
procedure TForm1.Button2Click(Sender: TObject);
var
dummy : TStringList;
Stream_ : TIdMultipartFormDataStream;
BufferStr : String;
begin
dummy := TStringList.Create;
With dummy do begin
Text :=
'----------111910102236687'#10+ // die "---<timecode>"s müssen vermutlich nicht sein, gel?
'Content-Disposition: form-data; name="Postvariable1"'#10+
'Inhalt A'#10+
'----------111910102236687'#10+
'Content-Disposition: form-data; name="Postvariable2"'#10+
'Inhalt 2'#10+
'----------111910102236687';
end;
With IdHTTP1 do begin
Host := Edit1.Text;
Port := 8134; // das muss so sein
HTTPResponse := Post('/' + Edit2.Text, dummy);
end;
TntMemo1.Text := HTTPResponse;
dummy.Free;
Stream_.Free;
end;
Ich habe mir SmartSniff runtergeladen und schaue mir an, was der Client hier abschickt:
Code:
POST /montvideo/post_test.php HTTP/1.0
Connection: close
Content-Type: text/
xml;charset=UTF-8
Content-Length: 201
Host: 178.63.56.2:8134
Accept: text/
html, */*
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/3.0 (compatible;
Indy Library)
----------111910102236687&Content-Disposition: form-data; name="Postvariable1"&Inhalt A&----------111910102236687&Content-Disposition: form-data; name="Postvariable2"&Inhalt 2&----------111910102236687
Leider keine Zeilenumbrüche da.
Wenn ich in meinen POST-Text oben #13#10 einfüge, verdoppeln sich die Ampersand-Zeichen und es kommen Zeilenumbrüche hinzu, ich brauche aber in dem
was wirklich abgeschickt wird einfach nur Zeilenumbrüche und keine Ampersand-Zeichen (ich habe schon den Output von TIdMultipartFormDataStream gesnifft, da waren einfach nur Zeilenumbrüche und keine Ampersand-Zeichen zu sehen).
Zwei Fragen:
1) Sehe ich das korrekt, dass in dem realen(!) Output des http-Klienten (also das was raus geht) keine &'s drin sind?
2) Wie kriege ich das hin, dass bei mir auch keine drin sind?
Ich will weiter die POST-Methode mit der Signatur (
URL: String, Inhalt: TStrings) verwenden, also
nicht mit einem Stream arbeiten, denn es muss auch möglich sein, Formulardaten per Hand zu definieren (- ähm - oder?
).
Es dankt und grüßt
Caps