【发布时间】:2014-03-22 14:44:48
【问题描述】:
我刚开始在 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 请求?谢谢!
【问题讨论】:
标签: python post https urllib python-3.3