客户代码:
import requests
import json
url = 'http://127.0.0.1:5050/login'
user = "newUser"
password = "password"
headers = {'content-type': 'application/json'}
response = requests.post(url, data={"user": user,"pass": password}, headers = headers)
服务器代码:
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/login', methods=['GET','POST'])
def login():
if request.method == 'POST':
username = request.form.get("user")
password = request.form.get("pass")
//more code
return make_response("",200)
if __name__ == "__main__":
app.run(host = "127.0.0.1", port = 5050)
问题是我的用户名和密码总是没有。
我还尝试使用:
content = request.get_json(force = True)
password = content['pass']
以及
request.form['user']
当我打印内容时:<;请求'http://127.0.0.1:5050/login'[POST]>;。因此找不到从客户端发送的json。
编辑:
我确实添加了json.dumps并使用了request.get_json(),它成功了
我尝试执行了与您发布的代码相同的代码,并且能够获取
username
和password
的值,而不是None
。您发送的是表单编码的数据,而不是JSON。仅仅设置内容类型并不能将请求转换为JSON。使用
json=
发送JSON数据。用以下方法检索烧瓶中的数据:
我最初的猜测是,由于您没有在请求烧瓶中设置内容类型头,所以它不理解应该能够解析数据。尝试添加值为
application/json
的内容类型头,看看它是否能满足您的需要。另一件需要注意的事情是,当我点击登录页面时,浏览器会将内容类型标题设置为
application/x-www-form-urlencoded
并将数据编码为user=asdf&passwd=asdf
相关问题 更多 >
编程相关推荐