Accueil > Forum > > > > requette
requette
vendredi 7 juillet 2006 à 21:49:09 |
requette

baby3378
|
bonjous, voila, j'ai trouvé un code sur ce site qui permet de faire une requette html (port 80) sur un server, sauf que je voudrai savoir comment faire une requette sur une page de se serveur: voici le code : #include<fstream.h> #include <iostream.h> #include<winsock.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[1024]; char canal[50] = "GET / HTTP/1.0\nAccept: */*\n\n"; /*<------a changer par exemple en [ Lien ] mais cela ne fonctionne pas, aucune réponce, comment pourrai-je faire ?*/ ofstream log("protsock.log"); // fichier pour enregistrer les données reçues. sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr(212.27.48.10); // site web (www.free.fr) sin.sin_family = AF_INET; sin.sin_port = htons(80); // port HTTP. connect(sock, (SOCKADDR *)&sin, sizeof(sin)); // on se connecte sur le site web. send(sock, canal, strlen(canal), 0); // on envoie la requête HTTP. int i = recv(sock, buffer, sizeof(buffer), 0); // le buffer récupère les données reçues. if (i != 0) // si le buffer reçoit des données. { log << buffer << "\n"; cout << buffer; system("pause"); // enregistrement des données dans le fichier. } if (i ==0) log << "aucune donné n'est parvenue\ndsl\a"; closesocket(sock); // on ferme le socket. WSACleanup(); }
Je vous remerci d'avance et vous souhaite une bonne journée ;-)
|
|
samedi 8 juillet 2006 à 13:38:40 |
Re : requette

katsankat
|
Réponse acceptée !
Salut baby :)
En HTTP, quand tu fais GET / tu demandes la page root, symbolisée par /.
Par conséquent pour obtenir truc.html situé dans un autre dossier ce serait GET /machin/truc.html
Ceci étant dit, Si tu veux obtenir une ressource d'un sous-domaine,
[ Lien ] Notes qu'il n' y a pas de www dansl' URL! Comme il s' agit d'un sous-domaine (hôte virtuel) il FAUT spécifier le Host dans la requête HTTP, pour pouvoir ensuite demander un GET /annuaire/
Infos détaillées sur la RFC 2616!
PS le code n'obtiendra que le premier paquet, faudra revoir ça aussi.
Bonne prog
|
|
samedi 8 juillet 2006 à 14:25:55 |
Re : requette

baby3378
|
merci pour ces précisions   , C'est koi la RFC ? Si ill s'agit d'un sous-domaine, comment peut on spécifier le host dans la requette ? Merci encor
|
|
samedi 8 juillet 2006 à 14:42:44 |
Re : requette

baby3378
|
j'ai essayé de faire sa : char canal[50] = "GET /infomsg_REQUETTE_775402.aspx#2 " ; et l'ip : 213.161.194.215 <----ip du site, aucune réponce;
Pourquoi sa ne fonctionne pas ?
|
|
samedi 8 juillet 2006 à 14:48:40 |
Re : requette

katsankat
|
SVP ne pas tester ses applications réseau sur cppfrance c'est le
minimum syndical. Faire sur sa page perso par exemple. Ou
microsoft.com, ou google.fr.
|
|
samedi 8 juillet 2006 à 14:50:53 |
Re : requette
|
samedi 8 juillet 2006 à 17:20:33 |
Re : requette

aardman
|
Réponse acceptée !
Salut,
Comme la requette est en HTTP/1.0, on peut mettre directement toute l'url dans le GET.
Sinon pour demander [ Lien ] c'est l'adresse de annuaire.freebox.fr qu'il faut mettre dans le inet_addr et non pas celle de www.free.fr.
|
|
samedi 8 juillet 2006 à 17:44:38 |
Re : requette

baby3378
|
je ne comprend pas     (j'ai suivi vos instruction + changé de server) : voici mon code:
#include<fstream.h> #include <iostream.h> #include<winsock.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[1024]; char canal[50] = "Get / www.google.fr/imghp?hl=fr&tab=wi&q="; ofstream log("protsock.log"); // fichier pour enregistrer les données reçues. sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("66.249.91.104"); // site web www.google.fr sin.sin_family = AF_INET; sin.sin_port = htons(80); // port HTTP. connect(sock, (SOCKADDR *)&sin, sizeof(sin)); // on se connecte sur le site web. send(sock, canal, strlen(canal), 0); // on envoie la requête HTTP. int i = recv(sock, buffer, sizeof(buffer), 0); // le buffer récupère les données reçues.
if (i != 0) // si le buffer reçoit des données. { log << buffer << "\n"; cout <<"sa marche"; cout << buffer; system("pause"); // enregistrement des données dans le fichier. } if (i ==0) log << "aucune donné n'est parvenue\ndsl\a"; cout <<"\npas de réponce\n";
if (i != 0) // si le buffer reçoit des données. { log << buffer << "\n"; cout <<"sa marche : "; cout << buffer <<"\n"; system("pause"); // enregistrement des données dans le fichier. } closesocket(sock); // on ferme le socket. WSACleanup(); }
|
|
samedi 8 juillet 2006 à 18:11:13 |
Re : requette

aardman
|
Réponse acceptée !
Salut,
On met pas n'importe quoi dans une requete http, y'a un format à respecter:
Essaye:
char canal[] = "GET www.google.fr/imghp?hl=fr&tab=wi&q= HTTP/1.0\r\n\r\n";
Sinon le code est vraiment bidon, aucun traitement d'erreur, quasiment
aucun affichage, c'est pas le mieux pour debuger un code qui marche pas.
|
|
samedi 8 juillet 2006 à 18:23:55 |
Re : requette

katsankat
|
Réponse acceptée !
Toujours aussi bon ce cher aardman.
Si connect() retourne quoi que ce soit d' inférieur à 0: la connection n'est pas établie.
Toujours terminer sa requête HTTP par CRLF CRLF (\r\n\r\n).
Vas-y t'y es presque. Consultes au moins une fois la RFC.
|
|
Cette discussion est classée dans : buffer, log, requette, sin, sock
Répondre à ce message
Sujets en rapport avec ce message
SVP besoin d'aide [ par seito ]
[size=5] seito [/size]j'ai déveloper une apploication pour transferer des fichiersla reception est parfaite pourtant à l'envoie ça me cause des tas de
client serveur [ par elanspeech ]
Bonjour,Je suis en train de programmer un petit client serveur en C pour windows avec dev-c++. J'obtiens l'erreur suivante a la compilation : D:\DEV-C
thread ne répondant pas sous MFC [ par seito ]
bonjours,je suis en train de concevoir une application qui me permet d'éffectuer un chat en réseau sous "Visual C++ 6.0" le problême c'est que quand j
Problème de Socket(recv) [ par YnOThAr ]
Voila je suis en train d'essayer de faire un client FTp mais j'ai vraiment du mal...mon preblème c ke j'arrive pas à réceptionner les réponses du serv
link avec GCC [ par mrjulien ]
Bonjours a tous.Je compile avec gcc sous windows (grâce a mingw). Je ne souhaite pas vous ennuyer en créant un topic redondant, mais je n'arrive pas à
Socket Server/Client [ par XKaliBur ]
Je suis débutant et je voudrais faire en sorte d'envoyer un message au mon serveur et des que ce dernier reçoit un message, il réponde en fonction de
[C] Probleme Socket [ par firemax ]
Voila le code : En gros je sais pas qu'elle est le probleme et je n'est aucun message d'erreur :D [code]#include "lib.h" int main() { int sock
Socket en C [ par RM50Man ]
WSADATA ws; WSAStartup(MAKEWORD(2,0), &ws); &n
[socket et api win]recevoir et envoyer en meme temps [ par shadow1779 ]
Bonjour je me suis fais un petit programme irc qui me servira de bot pour auto-op des personne ou d'autre taches diverses, le client aura une boite de
Problème dialogue socket [ par Crazy_Joe ]
Bonjour à tous, voilà j'ai un problème avec les sockets. Je voudrais me connecter au serveur pop de free sur le port 110 et récupérer le nombre d'ema
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|