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

Arduino Discussion :

Code HTML pas interprété par le navigateur client


Sujet :

Arduino

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut Code HTML pas interprété par le navigateur client
    Bonjour


    http://oct1.oct2.oct3.oct4/arduino/digital/.../...:5555

    J'envoie (pas représenté dans ce code minimaliste) sans problème des infos
    depuis un navigateur distant vers mon petit serveur se trouvant
    dans le YUN.
    Le serveur renvoie sans problème des infos vers
    le navigateur (ici on se contente de renvoyer <h1>TOTO</h1> ) mais...
    le code HTML n'est jamais interprété par le navigateur !!

    Je tiens à dire que j'ai fait pas mal de recherches à ce sujet avant de poster
    mais je suis très très débutant et ça limite mes possibilités !

    Je vous transmets donc ce code très SIMPLE qui ne traite que de la
    partie du travail qui ne fonctionne pas :




    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
     
     
    #include <Bridge.h>
     
    #include <BridgeServer.h>
    #include <BridgeClient.h>
     
    BridgeServer server;       // le webserver écoute le port 5555 (par défaut)
     
    void setup() 
    {
     
        Serial.begin(9600);
     
        while(!Serial)
        { }   
     
     
        Bridge.begin();          
     
     
     
        server.noListenOnLocalhost();
     
        server.begin();
     
     
     
        Serial.println("Prêt !!");    
     
    }
     
    void loop() 
    {
     
           BridgeClient client = server.accept();
     
     
           if ( client ) 
           {
     
                    Serial.println("new client");
     
                    String command = client.readStringUntil('/');
                    Serial.println(command);
     
                    client.println("HTTP/1.1 200 OK");
                    client.println("Transfer-Encoding: chunked");              
                    client.println("Content-Type: text/html; charset=UTF-8");
                    client.println("Connection: close");  
                    client.println();
                    client.println("<!DOCTYPE html>");
                    client.println("<html>");                
                    client.println("<head><title>Arduino YUN</title></head>");
                    client.println("<body><h1>TOTO</h1></body></html>");                   
     
           }
     
           // give the web browser time to receive the data
           delay(1);
           // close the connection:
           client.stop();
     
     
    }




    windows 10 et Yun, port série COM7


    J'imagine que c'est une question de cours mais je ne trouve pas !
    Merci à tous


    Pierregrenoble

  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Bonsoir,
    J'ai du code similaire pour l'ESP32 et j'ai un client.println() après la ligne 56.

  3. #3
    Membre confirmé

    Inscrit en
    Octobre 2010
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 169
    Par défaut
    Slt, juste en survolant ton poste en mode débug il te dit quoi ton navigateur ?

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut Yun et échanges avec un navigateur distant
    Bonjour,

    Merci pour vos interventions, ça m'aide.
    Toujours sur Arduino Y U N...

    J'applique donc ce code qui m'a convaincu.
    Pour l'instant , je n'envoie JAMAIS l'entête et la page web
    car à la fin du fonctionnement (voir dernières lignes du moniteur série)
    la boucle se termine AVANT de lire la séquence \r\n\r\n

    C'est à se demander si cette séquence a jamais été envoyée !



    Il y a bcp de Serial.println() dans mon code c'est pas indispensable pour vous
    ça l'est pour moi:






    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
     
    CODE ARDUINO YUN
    --------------------------------------------------------------------------------
     
     
     
    #include <Bridge.h>
     
    #include <BridgeServer.h>
    #include <BridgeClient.h>
     
    BridgeServer server;  // le webserver écoute le port 5555 (par défaut)
     
     
     
     
    void setup() 
    {
     
           pinMode(11, OUTPUT);
           pinMode(10, OUTPUT);
     
           Bridge.begin();     
     
           Serial.begin(9600);
     
           while(!Serial)
           { }
     
           server.noListenOnLocalhost();
     
           server.begin();
     
           Serial.println("Prêt !!");    
     
    }
     
     
     
    void loop() 
    {
           testRequeteWeb();
    }
     
     
     
     
     
    void testRequeteWeb()
    {
     
           boolean currentLineIsBlank = true;
           Serial.println("valeur initiale  : currentLineIsBlank == true");   
     
     
           BridgeClient client = server.accept();
     
           if (!client) return; // pas de client connecté
     
           while (client.connected()) 
           {
                   Serial.println("client.connected()");
     
                  if (client.available()) 
                  {
                         Serial.println("client.available()");
                         // on lit toute la trame HTPP, ici sans se soucier de la requête
                         char c     = client.read();
                         int  ascii = (int)c;
     
                         Serial.print( "CAR : " );
                         Serial.print( c );
                         Serial.print( "  code ASCII : " );
                         Serial.println( ascii );
     
     
                         if (c == '\n' && currentLineIsBlank) 
                         {      // une requête HTTP se termine par une ligne vide
                                // ON GENERE LA PAGE WEB
                                // On envoie un en tête de réponse HTTP standard
                                Serial.println("ENVOI EN-TETE HTTP");
     
                                client.println( "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n" );
                                client.println();                             
                                client.println( "<!DOCTYPE html><html><head></head><body><h1>TOTO</h1></body></html>" );
     
                                // on sort du while et termine la requête
                                break;
                         }                     
     
     
                         if ( c == '\n' )
                         {
                                Serial.println("fin de boucle \\n : currentLineIsBlank == true");  
                                currentLineIsBlank = true;
                         }
                         else 
                         {
     
                                if ( c != '\r' )
                                {                      
                                       Serial.println("fin de boucle    : Ni  \\n  ni  \\r  : currentLineIsBlank == false");                                    
                                       currentLineIsBlank = false;  //on lit un caractère
                                }
                                else
                                {
                                       Serial.println("fin de boucle \\r");                  
     
                                }                            
                         }                     
     
     
                  } // end if available
     
     
           } // end while
     
           delay(1);
           client.stop(); // termine la connexion
     
    }




    REQUETE TAPEE
    -------------------------------------------------------------------------

    http://oct1.oct2.oct3.oct4/arduino/bonjour6:5555





    VOICI LA SORTIE MONITEUR SERIE CORRESPONDANTE
    -------------------------------------------------------------------------



    Prêt !!
    valeur initiale : currentLineIsBlank == true
    valeur initiale : currentLineIsBlank == true
    valeur initiale : currentLineIsBlank == true

    etc...

    valeur initiale : currentLineIsBlank == true
    valeur initiale : currentLineIsBlank == true
    client.connected()
    client.available()
    CAR : b code ASCII : 98
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : o code ASCII : 111
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : n code ASCII : 110
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : j code ASCII : 106
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : o code ASCII : 111
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : u code ASCII : 117
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : r code ASCII : 114
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : 6 code ASCII : 54
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : : code ASCII : 58
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : 5 code ASCII : 53
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : 5 code ASCII : 53
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : 5 code ASCII : 53
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR : 5 code ASCII : 53
    fin de boucle : Ni \n ni \r : currentLineIsBlank == false
    client.connected()
    client.available()
    CAR :
    code ASCII : 13
    fin de boucle \r
    client.connected()
    client.available()
    CAR :
    code ASCII : 10
    fin de boucle \n : currentLineIsBlank == true
    client.connected()
    client.connected()
    client.connected()
    client.connected()
    client.connected()
    client.connected()
    client.connected()
    client.connected()





    Merci


    pierre Grenoblois

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Par défaut Erreur d'adresse, c'est idiot...
    Bonjour à tous,

    il fallait envoyer
    http://oct1.oct2.oct3.oct4:5555/arduino/toto/tata/tati/.../...
    et non
    http://oct1.oct2.oct3.oct4/arduino/toto/tata/tati/.../...:5555


    quel rigolo ce Pierre !!


    Merci


    Pierre Grenoble

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

Discussions similaires

  1. Fichier HTML non interprété par mon navigateur ( google chrome)
    Par calouco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/03/2019, 14h36
  2. HTML mal interprété par client mail
    Par Dominique7 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/09/2016, 08h43
  3. Réponses: 2
    Dernier message: 30/05/2014, 18h15
  4. Html non interprété par client mail
    Par ChristopheD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 17/02/2010, 11h24
  5. code javascript pas interprété par internet explorer
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/09/2008, 18h47

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