[Winsock] Probleme requete POST

Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 3 sept. 2007 à 02:04
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 3 sept. 2007 à 04:05
Bonsoir,
Je doit passer une variable a un script php, mais je crois que ma requete POST ne doit pas etre bonne car je recois rien...
Voici mon code:
DWORD RetLen = 0;
char CurDir[MAX_PATH];
char Request[512] = "POST /data/var.php?ret="";
WSADATA wsaData;
SOCKET Sock;
SOCKADDR_IN Saddr;
HOSTENT* Host = NULL;
RetLen = GetCurrentDirectory(MAX_PATH, CurDir);
strcat(Request, CurDir);
strcat(Request, "" HTTP/1.1\r\nHost: monsite.fr:80\r\n\r\n\0");
WSAStartup(MAKEWORD(1,1), &wsaData);
Sock = socket(AF_INET, SOCK_STREAM, 0);
Host = gethostbyname((const char*)"monsite.fr");//Server);
ZeroMemory(&Saddr, sizeof(struct sockaddr_in));
Saddr.sin_family = AF_INET;
Saddr.sin_port = htons(80);
memcpy(&Saddr.sin_addr.s_addr, Host->h_addr_list[0], Host->h_length);
connect(Sock, (const SOCKADDR*)&Saddr, sizeof(SOCKADDR));
send(Sock, Request, strlen(Request), 0);
send(Sock, End, sizeof(End), 0);
closesocket(Sock);
WSACleanup();

Neo_Fr

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
3 sept. 2007 à 03:05
Salut,

En gros tu utilises ce gros bout de code tout moche qui ne contient
aucun traitement d'erreur, et tu t'etonnes qu'il ne fonctionne pas ?

Ca commence a devenir la mode ce genre de probleme sur cppfrance, ca fait vraiment flipper.
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
3 sept. 2007 à 03:24
Effectivement l'erreur vient de WSAStartup, mais je ne vois tjrs pas comment la resoudre.

DWORD RetLen = 0;
char CurDir[MAX_PATH];
char Request[512] = "POST /data/var.php?ret="";
WSADATA wsaData;
SOCKET Sock;
SOCKADDR_IN Saddr;
HOSTENT* Host = NULL;
RetLen = GetCurrentDirectory(MAX_PATH, CurDir);
strcat(Request, CurDir);
strcat(Request, "" HTTP/1.1\r\nHost: monsite.fr:80\r\n\r\n\0");

if(!WSAStartup(MAKEWORD(1,1), &wsaData)) MessageBox(0, "WSAStartup Error", 0, 0);
Sock = socket(AF_INET, SOCK_STREAM, 0);
if(Sock == INVALID_SOCKET) MessageBox(0, "socket error", 0, 0);
Host = gethostbyname((const char*)"monsite.fr");//Server);
if(!Host) MessageBox(0, "gethostbyname Error", 0, 0);
ZeroMemory(&Saddr, sizeof(struct sockaddr_in));
Saddr.sin_family = AF_INET;
Saddr.sin_port = htons(80);
memcpy(&Saddr.sin_addr.s_addr, Host->h_addr_list[0], Host->h_length);
if(connect(Sock, (const SOCKADDR*)&Saddr, sizeof(SOCKADDR)) == SOCKET_ERROR) MessageBox(0, "connect Error", 0, 0);
if(send(Sock, Request, strlen(Request), 0) == SOCKET_ERROR) MessageBox(0, "send Error", 0, 0);
closesocket(Sock);
WSACleanup();
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
3 sept. 2007 à 03:25
Oops n'importe koi je devrait aller me coucher moi
"If successful, the WSAStartup function returns zero"
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
3 sept. 2007 à 03:27
Apres verification ca n'a pas l'air de venir du code mais bien de la requete post

Et c'est:
if(WSAStartup(MAKEWORD(1,1), &wsaData)) MessageBox(0, "WSAStartup Error", 0, 0);
...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
3 sept. 2007 à 04:05
Salut,

Si tu es sur que le probleme vient de la requette HTTP, compare ce qui est envoyé par ton programme avec ce qui est envoyé par
un autre programme qui envoie la bonne requette (browser, telnet..) en
utilisant ethereal par exemple.
0
Rejoignez-nous