如何修复:“;flask request.arg.get(';language';)函数返回无
当我尝试将HTTPRequest从Esp8266发送到Flask应用程序时, İt返回无 我发送如何修复:“;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;
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)