首页 > 解决方案 > 通过 POST 请求发送序列化数据

问题描述

首先,我不太习惯 HTTP 请求,所以如果我犯了一些愚蠢的错误或完全错误的假设,请多多包涵。

我正在尝试使用 Flask 使用 POST 请求发送图像,我正在使用的代码可以在此链接上找到: https ://gist.github.com/kylehounslow/767fb72fde2ebdd010a0bf4242371594

基本上它使用 cv2 对图像进行编码,而不是在 POST 请求中发送它,我可以让它工作,但我想发送更多信息,因此我将请求重写为:

payload = {'img':img_encoded.tostring(), 'name':'foo'}
response = requests.post(test_url, data=json.dumps(payload), headers=headers)

这给了我一个错误,更具体地说:

TypeError: Object of type 'bytes' is not JSON serializable

这是由于我正在对图像进行编码,所以我尝试只发送字典,而不将其转储到 JSON,请求通过,但现在我不知道如何解码请求中的数据字段。如果我尝试访问 request.data 我得到这个:

b'img=very_long_first_field_of_binary_info&name=foo'

我如何将其还原为字典?由于我不能使用json,所以我不知道该怎么办。在此先感谢您的帮助,

马蒂亚

标签: pythonhttppostflaskrequest

解决方案


推荐阅读