使用test_client并发送如下请求:
app = Flask(__name__)
client = app.test_client()
headers = {'content-type': 'application/json', 'Authorization': u'Bearer fake_token_123'}
params = {'dont_care': True}
client.get(ֿֿ'/my_route/123', query_string=params, headers=headers)
我的路线是
class MyController(Resource):
def get(self, id):
parser = reqparse.RequestParser()
parser.add_argument('currency', type=str, default='USD', help="help text")
args = parser.parse_args()
currency_from_params = args.currency
parser.parse_args()
The browser (or proxy) sent a request that this server could not understand
从标题中删除'content-type': 'application/json'
时,它可以正常工作。
我不明白这种行为,如何在没有优雅try, expect
的情况下保护它。
感谢您的帮助
答案 0 :(得分:1)
您已经发现了如何修复它:如果您没有发布JSON,请不要发送content-type: application/json
。您无法使用GET发送JSON,即使您可以(或正在使用POST),您也必须首先使用json.dumps(data)
对JSON进行编码。