Entwickler-Ecke

Internet / Netzwerk - Frage zu TClientSocket


jackie05 - Mi 23.01.08 23:43
Titel: Frage zu TClientSocket
Hallo,
sry wegen neue Thread aber ich habe mal ein paar fragen zu ClientSocket.

Wie kann ich über TClientSocket daten zum PHP Datei schicken mittels POST?

In der PHP Datei werden die Daten dann über POST ermittelt, aber wie kann ich die Daten zum PHP Datei schicken, mit TClientSocket?

Ich bedanke mich schonmal im Voraus.

MfG


LorenzS - Mi 23.01.08 23:47

Du must über das protokol http das post schicken. an den Server.
ClientSocket.localsport:=80;
neben dem http header werden dann die post-daten angehängt.

ein kleines beispiel

Quelltext
1:
2:
3:
4:
5:
6:
POST \Login.php HTTP/1.1\r\n
Host: www.meineseite.de\r\n
Content-Length: 19\r\n
Content-Type: application/x+www-form-urlencoded\r\n
\r\n
name=Nick&pw=geheim


jackie05 - Do 24.01.08 02:15

user profile iconLorenzS hat folgendes geschrieben:
Du must über das protokol http das post schicken. an den Server.
ClientSocket.localsport:=80;
neben dem http header werden dann die post-daten angehängt.

ein kleines beispiel

Quelltext
1:
2:
3:
4:
5:
6:
POST \Login.php HTTP/1.1\r\n
Host: www.meineseite.de\r\n
Content-Length: 19\r\n
Content-Type: application/x+www-form-urlencoded\r\n
\r\n
name=Nick&pw=geheim


Danke.
Aber mit welchem befehl sende ich das ab?
ClientSocket1.SendText wird nur beim Chat benötigt, wie sende ich das zum PHP Datei?

MfG


LorenzS - Do 24.01.08 20:37


Quelltext
1:
POST \Login.php HTTP/1.1\r\n                    

wäre zB.

Delphi-Quelltext
1:
ClientSocket1.SendText('POST \Login.php HTTP/1.1'+#13+#10);                    

es gibt eh nur 2 befehle, SendText oder SendBuf.

du konnat das ganze auch als einen string schicken.
Hauptsache du vergisst das "\r\n" also #13#10 nicht.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Procedure TForm1.Sendlogin;
var s_Post:string;
begin
 s_Post:='POST \Login.php HTTP/1.1'+#13+#10;  
 s_Post:=s_Post+'Host: www.meineseite.de'+#13+#10
 s_Post:=s_Post+'Content-Length: 19'+#13+#10//Länger der Daten nach dem Header
 s_Post:=s_Post+'Content-Type: application/x+www-form-urlencoded'+#13+#10
 s_Post:=s_Post+#13+#10;//Header Ende
 s_Post:=s_Post+'name=Nick&pw=geheim';//Post Daten
 ClientSocket1.SendText(s_post);
end;