如何通过HTTP发送二进制POST数据?

5

我已经从文件中读取了二进制数据。我在寻找如何通过Python的HTTP POST上传来自另一个源的二进制数据,而不是像大多数在线示例那样直接链接到文件并上传整个文件。

2个回答

7

或者:

req = urllib2.Request("http://example.com", data, {'Content-Type': 'application/octet-stream'})
urllib2.urlopen(req)

那也展示了您如何指定数据的Content-Type。

0

我不确定你在看哪些在线示例,但是urllib2.urlopen需要将要发布的数据作为一块数据而不是一个文件。


示例:http://www.2maomao.com/blog/python-http-post-a-binary-file-using-urllib2/ - esac
我需要进行网络嗅探。当我尝试这样做时,我要POST的服务器会发出400 Bad Request错误。 - esac
1
好的,那个例子将数据从文件读入到 png_data 中。如果您已经将数据存储在内存中,只需在调用 urllib2 时使用即可。 - Greg Hewgill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接