[POST]>400 Bad Request: The browser (or proxy) sent a request that this server could not understand
.
400 (错误请求) 服务器不理解请求的语法。
后台报400错误。400错误表示 由于语法格式有误,服务器无法理解此请求。
但后台的接口确实可以进行post请求。之后发现原因是当flask的request.form无法获取到对应的参数时,就会报400错误。
使用post请求时, 若是参数为json数据, request。
1. 表单最好不要接收json数据
,想用表单接收可以采取 json 字符串的格式
-F json_file='{"title":"comewords","content":"articleContent"}'
这种方式直接json.loads即可得到字典格式信息
-F json_file=@/home/fanyuqing/response.json
这种方式需要转码
json_f = request.files.get("json_file")
json_str = json_f.stream.read().decode("utf8")
json_dic = json.loads(json_str)
2. 如果要用get_json()方法获取json文件,方式如下:
重点是要用 -H
参数来申明请求的 header
curl localhost:9999/api/art -X POST -H "Content-Type:application/json" -d '{"title":"comewords","content":"articleContent"}'
或者 curl localhost:9999/api/art -X POST -H "Content-Type:application/json" -d @re.json
json_dic = request.get_json()
from flask import Flask,render_template,request
@app.route('/login',methods=['GET','POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
print username,password
return render_template('login.html',method=request.method)
(转)https://blog.csdn.net/gymaisyl/article/details/86629874
1、利用flask的request.form.get()方法接收
from flask import Flask
from flask import jsonify
from flask import request
import json
@app.route("/login", methods=['POST'])
def login():
data_ = request.form.get('data')
data = json.loads(data)
username = data['username']
password = data['password']
return jsonify({"login": Login.login(username, password)}) # 返回布尔值
2、 利用flask的request.get_data()方法接收
from flask import Flask
from flask import jsonify
from flask import request
import json
@app.route("/flask/login", methods=['POST'])
def login():
data = request.get_data()
data = json.loads(data)
username = data['username']
password = data['password']
return jsonify({"login": Login.login(username, password)}) # 返回布尔值
3、利用flask的request.get_json()方法接收
from flask import Flask
from flask import jsonify
from flask import request
@app.route("/flask/login", methods=['POST'])
def login():
data = request.get_json()
username = data['username']
password = data['password']
return jsonify({"login": Login.login(username, password)}) # 返回布尔值