POST/GET REQUEST
-
Hi @all,
ich hab folgendes Problem und zwar möchte ich einen Post Request an ein php Skript senden und dann die Antwort in ein char Array speichern. Das alles unter Benutzung von Winsock.
mein Code so far:
WSADATA wsa; SOCKET s; SOCKADDR_IN addr; int test=0; test=WSAStartup(MAKEWORD(2,0),&wsa); if(test!=0){ return false; } s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(s == INVALID_SOCKET){ return false; } memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family = AF_INET; addr.sin_port = htons(8080); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); test = connect(s,(SOCKADDR*)&addr,sizeof(addr)); if(test==SOCKET_ERROR) { return false; } char buf[BUFSIZ]; strcpy(buf,"GET /sep.php HTTP/1.1"); // hier möchte ich einen einfachen GET REQUEST an die seite /sep.php schicken. send(s,buf,BUFSIZ,0); recv(s,buf,BUFSIZ,0); return true;
Allerdings funktioniert der send Befehl nicht. Also ich mach einen Umweg über ein Java Programm TCPMon, das die Verbindungsaufforderung an die richtige IP weiterleitet. Allerdings bekomm ich bei dem TCPMon ne Exception. Deshalb denke ich, dass was mit dem send schon nicht stimmt (deshalb hab ich das recv erst mal weggelassen).
Kann mir jemand sagen, wie ich einen korrekten POST- Request mache?
dankeschön,
-
So funktioniert HTTP 1.1:
http://www.w3.org/Protocols/rfc2616/rfc2616.htmlMfG SideWinder
-
Ja, aber der HTTP Request an sich dürfte doch so funktionieren. Habs auch schon versucht, dass ich den Host noch angebe, aber es haut leider nicht hin. Bei recv() bleibt das Programm einfach stehen und nix geht mehr
-
du hast ja noch nicht mal den Host-Header angegeben.