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 :

[ESP8266] Requête POST vers Flask


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Par défaut [ESP8266] Requête POST vers Flask
    Bonjour à tous,

    Je souhaite qu'un ESP8266 envoie une requête POST vers un serveur qui tourne sur Flask.

    Cela fonctionne pour une requête GET mais pas pour une requête POST.
    J'ai une erreur 400 m'indiquant que ma requête est mauvaise.

    Mon code Arduino

    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
    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    #include <ESP8266WiFiMulti.h>
    #include <ESP8266HTTPClient.h>
    #include <WiFiClient.h>
     
    ESP8266WiFiMulti WiFiMulti;
    IPAddress ip(192, 168, 0, 99);
    IPAddress gateway(192, 168, 0, 254);
    IPAddress subnet(255, 255, 255, 0);
    IPAddress dns1(8, 8, 8, 8);
    IPAddress dns2(4, 4, 2, 2);
     
    void setup() {
     
      Serial.begin(9600);
      // Serial.setDebugOutput(true);
      delay(4000);
     
     
      WiFi.config(ip, gateway, subnet, dns1, dns2);
      WiFi.mode(WIFI_STA);
      WiFiMulti.addAP("*****", "********");
     
    }
     
    void loop() 
    {
      // wait for WiFi connection
      if ((WiFiMulti.run() == WL_CONNECTED)) {
     
        WiFiClient client;
        HTTPClient http;
     
     
        if (http.begin(client, "http://192.168.0.14:5000")) 
        {  
          http.addHeader("Content-Type", "text/html" );
     
          // start connection and send HTTP header
          http.POST("temp=10");
     
          String payload = http.getString();
          Serial.println(payload);
     
          } 
     
          http.end();
     
      }
     
      delay(10000);
    }
    Mon code Flask :

    Code python : 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
    from flask import Flask, render_template, request
     
    # Si le chemin demande est /Accueil
    app = Flask(__name__)
    @app.route('/', methods=['GET', 'POST'])
    def Accueil():
        print(request)
        if request.method == 'POST':
            valeurpython = request.values["temp"]
            a=0
            print(valeurpython)
            print(a)
            return ("ok")
        if request.method == 'GET':
            return ("ok")
     
    if __name__ == '__main__':
        app.run(debug=True)

    La forme d'une requête POST qui fonctionne sur Flask émise par un PC:
    Nom : requete POST.png
Affichages : 658
Taille : 72,2 Ko

    Merci pour votre aide.

  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
    Salut,

    Il faut sans doute chercher un peu.
    J'ai trouvé par exemple pour Flask sur un Raspberry Pi: Raspberry Pi 3 Flask: Receiving HTTP POST Request from ESP32
    Pourquoi ne pas rester simplement avec des GET!?

    Quand j'ai écrit Python Flask et SQLite pour le Raspberry Pi 3 ou 4 - exemples de communication avec des ESP32 ou ESP8266
    qui vient de sortir ici, j'avais aussi en tête de mettre un POST, mais l'article commençait d'"éclater" dans tous le sens, par son volume et ses sujets.

    Bonne recherche

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Par défaut
    Merci pour ta réponse.
    Je venais juste de trouver.
    la ligne de code ne fonctionne pas avec un ESP8266.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/11/2013, 11h13
  2. [PHP 5.3] Correction du code "Requête POST Vers un serveur
    Par freeman25 dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2010, 19h36
  3. Réponses: 1
    Dernier message: 02/07/2009, 08h00
  4. lenteur de requête mysql vers un poste windows
    Par richard dev dans le forum Réseau
    Réponses: 3
    Dernier message: 08/06/2009, 11h09
  5. Réponses: 13
    Dernier message: 16/04/2004, 12h00

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