使用HTTPS的Python3 urllib POST

时间:2014-02-21 07:53:00

标签: python post https urllib python-3.3

我刚开始使用python 3.3.3中的urllib,我可以使用urllib.request.urlopen()来发出POST请求。但是,我想要做的是使用HTTPS的POST。我看到urlopen的文档说“当前HTTP请求是唯一使用数据的人”(我需要POST请求的'data'参数)。

然后我看到urllib.request.HTTPSHandler似乎能够通过其https_open()进行HTTPS POST。不幸的是,似乎我无法弄清楚如何使用这个功能。现在我只想用这个处理程序做一个简单的HTTPS GET,所以我试图做的是

import urllib.request
r = urllib.request.Request("https://www.google.com")
handler = urllib.request.HTTPSHandler()
handler.https_open(r)

但这会导致AttributeError: 'Request' object has no attribute 'timeout'

如何让HTTPSHandler.https_open()工作?或者如果我使用

urlopen会调用https_open函数
opener = urllib.request.build_opener(urllib.request.HTTPSHandler)
urllib.request.install_opener(opener)

之前和实际上已经发出了HTTPS POST请求吗?谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将data=Noneurlopen一起使用。

或使用Requests