Bonjour,
Depuis quelques jours j'essaie de simuler une connexion à un site (par exemple: developpez.com) par programme en C avec les sockets tout en me faisant passer pour firefox.
Sur le send() j'initialise mon buffer avec les paramètres suivants:
Code :
- "GET http://windows.developpez.com/ HTTP/1.1\r\n"; // URL appelée
- // header du buffer
- "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
- "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
- "Accept-Encoding: qzip, deflate\r\n";
- "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
- "Connection: keep-alive\r\n";
- "Host: web.developpez.com\r\n";
- "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2\r\n";
- "\r\n" // ligne vide => fin du header
|
ensuite je boucle sur le recv() et ça marche, je reçois un header de réponse suivi de la 1ère page du site dans mon buffer qu'au fur et à mesure des boucles je recopie dans un fichier.
Seulement je ne simule pas exactement ce que fait firefox car quand je regarde avec la console web de firefox ce que fait firefox sur le send(), il m'indique qu'en même temps qu'un buffer identique au mien ci-dessus il envoie un cookie tout simple: WT_FPC:id
Je voudrais en faire autant mais j'ignore sous quelle forme ce cookie est envoyé. J'ai fait plusieurs essais en rajoutant dans mon header ci-dessus une des lignes ci-dessous juste avant la ligne vide:
Code :
- "Cookie: WT_FPC=id\r\n"
- "Cookie: WT_FPC:id\r\n"
- "Set-Cookie: WT_FPC=id\r\n"
- "Set-Cookie: WT_FPC:id\r\n"
|
Mais aucun de ces essais ne fonctionne car je ne reçois plus de réponse sur le recv(). Et au bout de 5mn je reçois le message:
408 Request Time-out
Server timeout waiting for the HTTP request from the client
Quelle est la bonne syntaxe et qu'est-ce que le serveur attend de moi ? Je rappelle que j'ai simplement voulu simuler ce que je vois que firefox fait via sa console web!
Merci