如何修复:“;flask request.arg.get(';language';)函数返回无

如何修复:“;flask request.arg.get(';language';)函数返回无,flask,http-post,content-type,esp8266,Flask,Http Post,Content Type,Esp8266,当我尝试将HTTPRequest从Esp8266发送到Flask应用程序时, İt返回无 我发送 http.POST("language=python"); 到烧瓶服务器 如何在flask服务器上获取值 这是我的ESP8266 HTTPRequest代码: void loop() { // wait for WiFi connection if ((WiFiMulti.run() == WL_CONNECTED)) { WiFiClient client;

当我尝试将HTTPRequest从Esp8266发送到Flask应用程序时, İt返回

我发送

  http.POST("language=python");
到烧瓶服务器

如何在flask服务器上获取值

这是我的ESP8266 HTTPRequest代码:

 void loop() {
   // wait for WiFi connection
   if ((WiFiMulti.run() == WL_CONNECTED)) {
     WiFiClient client;

     HTTPClient http;

     Serial.print("[HTTP] begin...\n");
     if (http.begin(client, "http://192.168.1.107:8090/query")) {  // HTTP


     http.addHeader("Content-Type", "application/x-www-form-urlencoded");      
     int httpCode = http.POST("language=python");
     String payload = http.getString();
     Serial.println(httpCode);   //Print HTTP return code
     Serial.println(payload);         



     http.end();
   } else {
     Serial.printf("[HTTP} Unable to connect\n");
   }
这是我的代码:

 from flask import Flask,render_template
 from flask import request

 app = Flask(__name__)

 @app.route('/query',methods=['GET','POST'])
 def helloHandler():
     language = request.get_data() #if key doesn't exist, returns None
     veri=request.args.get('language')

     print(request.get_data()) 
     print(veri)

     return '''<h1>The language value is: {}</h1>'''.format(veri)

 app.run(host='0.0.0.0', port= 8090)
从烧瓶导入烧瓶,渲染\u模板
从烧瓶进口请求
app=烧瓶(名称)
@app.route('/query',methods=['GET','POST'])
def helloHandler():
language=request.get_data()#如果键不存在,则返回None
veri=request.args.get('language')
打印(请求.获取数据())
打印(veri)
返回''''语言值为:{}''。格式(veri)
应用程序运行(主机=0.0.0.0',端口=8090)
这是我在程序运行时的结果:


看看下面的werkzeug请求
数据
方法。它调用
get_data
,似乎对您有效:

@cached_property
def data(self):
    """
    Contains the incoming request data as string in case it came with
    a mimetype Werkzeug does not handle.
    """

    if self.disable_data_descriptor:
        raise AttributeError("data descriptor is disabled")
    # XXX: this should eventually be deprecated.
    # We trigger form data parsing first which means that the descriptor
    # will not cache the data that would otherwise be .form or .files
    # data.  This restores the behavior that was there in Werkzeug
    # before 0.9.  New code should use :meth:`get_data` explicitly as
    # this will make behavior explicit.
    return self.get_data(parse_form_data=True)