第一件事,我不太习惯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,所以我不知道该怎么办。 预先感谢您的帮助,
马提亚