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

Réseau C Discussion :

Problème de requête GET


Sujet :

Réseau C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut Problème de requête GET
    Bonjour,

    Je ne savais pas trop où poser cette question, j'espère avoir trouvé le bon endroit.
    J'essaie de récupérer des pages webs de la RATP pour un widget. Le widget en question existe déjà mais je dois le recoder. Problème à chacune de mes requêtes GET je reçois bien une page web mais cette dernière me dit que le service est indisponible, ce qui est faux. Si je mets l'adresse dans le navigateur pas de problème, si j'utilise wget pas de problème non plus

    code source pour le socket (en C)
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <stdio.h>
     
    #define DATA "GET http://www.ratp.info/horaires/?etape=choix_rer_ssotr&act=act_valid&ligne=A HTTP/1.0\n\n"
     
    int main (int argc, char * argv[])
    {
            int sock;
            struct sockaddr_in name;
            struct hostent *machine, *gethostbyname();
            int length;
     
            sock = socket (AF_INET, SOCK_STREAM, 0);
            if (sock < 0)
            {
                    perror ("socket");
                    return 1;
            }
     
            name.sin_family = AF_INET;
            name.sin_port = htons(80);
            name.sin_addr.s_addr = inet_addr ("62.160.111.11");
     
     
            if (connect(sock,(struct sockaddr *)&name, sizeof(name)) < 0)
            {
                    perror ("connect");
                    close (sock);
                    return 1;
            }
     
            if (send (sock, DATA, sizeof(DATA),0) < 0)
            {
                    perror ("send");
                    close (sock);
                    return 1;
            }
     
            int nb_char_lus;
            char message_recu[100];
            FILE *sortie;
            sortie = fopen ("test4444.txt", "w");
            while ( (nb_char_lus=recv (sock, message_recu, 99, 0)) > 0)
            {
                    message_recu[nb_char_lus]='\0';
                    printf ("%s", message_recu);
                    fwrite (message_recu, sizeof(char),100,sortie);
            }
     
            fclose (sortie);
            close (sock);
            return 0;
    }
    Page récupérée (seulement le début)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    HTTP/1.1 200 OK^M
    Date: Mon, 20 Aug 2007 11:28:44 GMT^M
    Server: Apache^M
    Set-Cookie: PHPSESSID=e188a00^@98a35d241183fac372ee6de6e; path=/^M
    Expires: Thu, 19 Nov 1981 08:52:00 GMT^M
    Cache-Control: private^M
    ^@Pragma: no-cache^M
    Vary: Accept-Encoding,User-Agent^M
    P3P: CP="NON IND"^M
    Connection: close^M
    Content-T^@ype: text/html^M
    ^M
     
     
    <html>^M
    <head>^M
    <title>Horaires RER</title>^M
    <link rel="stylesheet" type="text/cs^@s" href="/francilien.css">^M
    ^M
    <script language="javascript">
    var MsgErrArr = 'Veuillez choisir un a^@rrêt.';
    var MsgErrDir = 'Veuillez choisir une direction.';
    </script>
    ^M
    <script language="JavaScript^@" src="/horaires/js/general.js"></script>^M
    <script language="JavaScript" src="/horaires/js/prec_lig^@ne.js"></script>^M
    ^M
    </head>^M
    <body bgcolor="#FFFFFF" onLoad="MM_preloadImages('/picts/v_bt/b_rec_on^@.gif');defiler('MsgIndipo','LE SYSTEME SIEL EST MOMENTANEMENT INDISPONIBLE. VOUS POUVEZ CONSULTER L^@ES HORAIRES DE REFERENCE A LA RUBRIQUE &quot;Tous les horaires de la ligne&quot;',200);" topmargin=^@"0" leftmargin="0" marginwidth="0" marginheight="0">^M
                    ^M
                     <table border="0" cellpadding="0" cell^@spacing="0" width="764"^M
                     height="139">^M
                       <tr height="139"> ^M
                             <td width="764" height="139^@" valign="top"> ^M
     
    <!-- Gouttière - Begin -->
    <div style="padding: 5px 0; font-size: 0;"></di^@v>
    <!-- Gouttière - End -->
     
    <!-- Mega Banner - Begin -->
    <div id="mega_banner_box">
            <div class="c^@ontent">
     
            </div>
    </div>
    <!-- Mega Banner - End -->
    <!-- Haut de page - B^@ner_box">
            <div class="c^@egin -->
    <div id="haut_page">
            <div class="haut_page_visual">
     
     
                    <ul>
                            <li class="last">^@<a href="http://www.ratp.fr/contact/">Contactez-nous</a></li>

    Je ne sais pas trop où peut être le problème
    Certains me conseilleront peut être \r\n après le HTTP/1.0 j'ai testé aussi et ça bloque

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,
    C'est vrai aussi qu'il n'existe pas de rubrique http donc difficile pour toi de trouver le bon endroit.
    Maintenant pour répondre à ta question, il est possible que le service que tu appelles ne veuille répondre à des requêtes provenant d'un service autre que d'un navigateur, ce qui expliquerait la réponse que tu reçois.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    le problème est résolu en utilisant la libwww mais je ne sais pas d'où provenait le problème qui avait l'air spécifique au site de la ratp, peut être un header à envoyer en plus...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/10/2008, 22h42
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème de requètes concurentes
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 3
    Dernier message: 08/08/2003, 16h51
  4. Réponses: 2
    Dernier message: 16/07/2003, 14h40
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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