IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

Problème requête HTTP


Sujet :

Développement

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 38
    Points
    38
    Par défaut Problème requête HTTP
    Bonjours,

    Voilà j'essai d'écrire des requetes HHTP dans un programme C permettant de récupérer des données sous forme de HTML, de texte, de png, de jpg et de midi.

    Voici ma requête :

    GET /fichier... HTTP/1.1\r\nHost: www.domaine.com\r\nAccept : text/html\r\nConnection: Keep-Alive\r\nContent-type: application/x-www-form-urlencoded/\r\nContent-Length: 0\r\n\r\n
    Quand je réceptionne la réponse je narrive que à récupérer du HTML et encore c'est seulement si je fais ma requête sur un fichier .php où il y a des echo. Là je récupère l'HTML.

    Quelqu'un peut me dire où ma requete déconne pour que je puisse récupérer tout ce que j'ai besoin ?

  2. #2
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Aucun rapport avec le langage C
    cf la RFC HTTP

  3. #3
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Bonsoir Reisike

    Tout d'abord, je rejoins la remarque de Reed : ce n'est pas du C (ni du PHP non plus hein!), c'est du HTTP, qui est formellement spécifié.

    Ton code :
    Code HTTP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    GET /fichier... HTTP/1.1
    Host: www.domaine.com
    Accept : text/html
    Connection: Keep-Alive
    Content-type: application/x-www-form-urlencoded/
    Content-Length: 0

    Pour la première ligne... même si ce n'est pas une faute, il est préférable d'employé une URI absolue ici, comme par exemple http://www.domaine.com/fichier.html

    Pour la seconde ligne, si tu souhaite pouvoir accepter des images, il faudra ajouter d'autres type MIME (une image n'est jamais encodé en text/html). Tu pourra employé par exemple un type MIME comme image/gif ou 'image/png. Tu peux en ajouter plusieurs, séparés par une virgule. Tu peux aussi employé */* : les joker signifie que tu accept tout.

    Pour la cinquième ligne, tu fais une erreur grave, car content-type est un champ des entête de réponse, et non pas des entêtes de requête. Accept, c'est pour les requête (GET ou HEAD) et Content-Type c'est pour les réponse, et c'est le serveur ou le CGI qui renvoie le document qui fixe ce champ, et non pas toi, surtout pas.

    Et pour le Content-Length... tu ne doute de rien toi ... Tout comme pour Content-Type, Content-Length est un champ de l'entête de réponse. Content-Length donne la taille en octet de contenu renvoyé (ou du contenu qui aurait été renvoyé si la requête est HEAD, mais tu peux oublier ce détail). Ce n'est évidement pas toi qui fixe la taille du document renvoyé, c'est à la charge du serveur ou du CGI qui renvoie ton document... (et en plus tu as fixé la taille à zéro.. alors même si ce champs avait un sens en requête, tu aurais exprimer par là ne vouloir qu'un contenu de longueur zéro )

    Bref, je te suggère cette petite lecture qui pourra t'aider :
    RFC2616 - HTTP/1.1 Specifications.

    La RFC2616 n'a pas encore un status de standard, mais c'est celle qui fait référence (it is not obsoleted)

    N'hésite pas à poser des questions si tu as besoin d'éclaircissements, ce sera avec grand plaisir

  4. #4
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    La requête se résume simplement à
    GET /fichier.png HTTP/1.1
    Host: www.domaine.com
    Problème suivant: analyser le header HTTP du serveur pour en extraire le content-length et le content-type. Si tu veux pas te casser la tête utilises l' API URLMON elle est là pour ça.

Discussions similaires

  1. Problème requête HTTP
    Par ggvert dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 04/05/2012, 17h12
  2. Problème Requête HTTP Via URL HTTPS
    Par newsdas dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 13/01/2011, 17h55
  3. Problème requête HTTP avec caméra IP
    Par Sleeping Lionheart dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 28/02/2009, 22h25
  4. Réponses: 3
    Dernier message: 03/10/2008, 23h42
  5. Problème requête HTTP
    Par Risike dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2007, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo