我试图使用烧瓶测试客户端在我的Flask应用程序中测试PUT请求.一切看起来都不错,但我一直得到400 BAD请求.
我使用POSTMAN尝试了相同的请求,然后我得到了回复.
这是代码
from flask import Flask app = Flask(__name__) data = {"filename": "/Users/resources/rovi_source_mock.csv"} headers = {'content-type': 'application/json'} api = "http://localhost:5000/ingest" with app.test_client() as client: api_response = client.put(api, data=data, headers=headers) print(api_response)
产量
Response streamed [400 BAD REQUEST]
Martijn Piet.. 7
您确实需要将数据实际编码为JSON:
import json with app.test_client() as client: api_response = client.put(api, data=json.dumps(data), headers=headers)
设置data
为字典会将其视为常规表单请求,因此如果您使用了任一内容类型,则每个键值对都将被编码为内容application/x-www-form-urlencoded
或multipart/form-data
内容.实际上,您的数据完全被忽略了.
您确实需要将数据实际编码为JSON:
import json with app.test_client() as client: api_response = client.put(api, data=json.dumps(data), headers=headers)
设置data
为字典会将其视为常规表单请求,因此如果您使用了任一内容类型,则每个键值对都将被编码为内容application/x-www-form-urlencoded
或multipart/form-data
内容.实际上,您的数据完全被忽略了.