Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1910 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Socket - envoyer URL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Socket - envoyer URL

n°692180
simoes
Posté le 04-04-2004 à 22:12:33  profilanswer
 

Voila je me suis connecter a un server avec un socket.
 
Maintenant je voudrais pouvoir envoyer une URL . (Que la page s'éxecuteen fait).
 
La page est sur le serveur que je me suis connecter.  
 
Comment faire?
 

mood
Publicité
Posté le 04-04-2004 à 22:12:33  profilanswer
 

n°692183
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2004 à 22:14:12  profilanswer
 

tu lui envoies une requete GET suivie de ton URL
faut potasser la RFC du protocole HTTP


---------------
J'ai un string dans l'array (Paris Hilton)
n°692185
simoes
Posté le 04-04-2004 à 22:16:05  profilanswer
 

Mais il y a pas de fonction tout fait pour cela?

n°692187
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2004 à 22:17:28  profilanswer
 

si tu utilises les berkeley sockets, non, faut tout faire à la main


---------------
J'ai un string dans l'array (Paris Hilton)
n°692194
simoes
Posté le 04-04-2004 à 22:21:15  profilanswer
 

Je prends le socket qui se trouve sous l'onglet Internet du Builder 6.. TClientSocket.  
 
Personne a un petit exemple? Surement qqun a déja fait cela nan?

n°692202
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2004 à 22:24:16  profilanswer
 

avec un TClientSocket non, c'est bas niveau. tu dois quand même passer un GET à la main.
utilise un composent qui encapsule l'activeX d'IE


---------------
J'ai un string dans l'array (Paris Hilton)
n°692208
simoes
Posté le 04-04-2004 à 22:28:22  profilanswer
 

Il y a le IdTCPClient qui devrait aller nan?

n°692211
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2004 à 22:31:51  profilanswer
 

IdHTTP serait plus approprié à mon avis


---------------
J'ai un string dans l'array (Paris Hilton)
n°692541
simoes
Posté le 05-04-2004 à 12:45:08  profilanswer
 

Oui a présent sa marche!
 
Cela 'éxécute bien la page, mais il me fait l'erreur :
"302 moved temporarily"
 
Cela vient de quoi? Tout s'éxécute normalement! Merci

n°692565
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-04-2004 à 13:04:27  profilanswer
 

Ca vient pas de toi, mais du serveur web [:sinclaire]
L'erreur est expliquée ici :
http://www.checkupdown.com/status/E302.html


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 05-04-2004 à 13:04:27  profilanswer
 

n°693458
simoes
Posté le 06-04-2004 à 11:57:01  profilanswer
 

Write an HTTP data stream through that socket
 
C'est koi se data stream?

n°693476
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-04-2004 à 12:06:28  profilanswer
 

Ben c'est la requête que tu envoies au serveur
GET + url de la page


---------------
J'ai un string dans l'array (Paris Hilton)
n°693973
simoes
Posté le 06-04-2004 à 18:06:27  profilanswer
 

Ah ok! Ben tout me semble correct je ne vois pas l'erreur!!!

n°693981
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-04-2004 à 18:14:06  profilanswer
 

Je t'ai dit que l'erreur ne venait pas de toi mais du site. Si tu tapes l'URL de ce site dans un navigateur, tu auras également l'erreur 302, et le serveur te proposera une adresse alternative
 

Citation :


Your Web server thinks that your URL has been temporarily redirected to another URL. The client system is expected to immediately retry the alternate URL.


---------------
J'ai un string dans l'array (Paris Hilton)
n°693994
pospos
Posté le 06-04-2004 à 18:18:44  profilanswer
 

faut que tu lise l'entete "Location: " de ta reponse, et il indiquera l'url vers laquelle il faut que tu fasse ta requete. Il faudra que tu gere ce type de redirection automatiquement (genre tu demande une URL, et tu suit la(les) redirection(s) jusqu'a avoir une reponse (200 ok). Et il faudra mettre une limite sur le nombre max de redirections que t'es pret à suivre aussi (pieges à robots...)
 
si tu obtient une erreur de type 4XX la ca veut dire que t'as merdé un truc (ca peut aussi vouloir dire que le lien est mort si c'est un 404)

n°694113
simoes
Posté le 06-04-2004 à 20:05:57  profilanswer
 

Je comprends pas vraiment POSPOS...

n°694257
pospos
Posté le 06-04-2004 à 23:25:45  profilanswer
 

cherche un tutorial HTTP
par exemple: http://www.jmarshall.com/easy/http/
 
je sais quelle librairie tu utilise, mais si c'est une librairie TCP il va falloir que tu implémente toute la couche HTTP, et si c'est une librairie HTTP (plus appropriée pour toi) il va tout de meme falloir que tu comprenne comment marche le HTTP pour comprendre les differents messages d'erreur
 
en gros tu a plusieurs type de code de reponse en HTTP (en tres gros et vague)
plage des 200: OK
plage des 300: redirection vers une autre URL
plage des 400: erreur du client (mauvaise requete, etc...)
plage des 500: erreur du serveur (cgi qui plante, etc...)
plage des 100: message d'info (continue, changement de protocole... pas la peine de s'attarder sur ceux la si ta librairie est au niveau HTTP)
 
donc la tu a recu une reponse de la plage des 300, et c'est la 302 (donc redirection temporaire). Ca veut donc dire que tu dois faire une requete vers une autre URL (qui est contenue dans les reponse, dans le champ Location et parfois aussi dans le corps de la reponse sous forme de lien HTML) pour recuperer le contenu que tu voulais. Les navigateurs comme IE ou mozzila font ca automatiquement et de maniere transparente pour l'utilisateur: parfois tu tappe une adresse dans la barre d'adresse et elle change pendant le téléchargement, ca veut dire qu'il y a eu redirection.
 
Souvent tu a des redirectiosn toutes betes que tu peux eviter, par exemple si tu demande "http://www.google.fr", tu a toutes les chances' d'etre rediriger directement vers "http://www.google.fr/" (juste le "/" final qui manquait).
 
Voila pour une explication rapide, mais de toutes facons je te conseil de lire un tutoriel complet


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Socket - envoyer URL

 

Sujets relatifs
Cacher l'URL avec response.redirect en ASP.NETExtraire le nom du lien d'une url
Variable de menu déroulant -> passé URL[URL REWRITING] Ne pas perdre les variables supplémentaire
Probleme Formulaire a envoyer par mailBouton envoyer pour poster un mail !! Dans un email recu
Socket et Packet en C[Question] Socket (résolu)
[Debutant] envoyer une bitmap d'un serveur vers un client 
Plus de sujets relatifs à : [C++] Socket - envoyer URL


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR