【问题标题】:Python3 urllib POST with HTTPS带有 HTTPS 的 Python3 urllib POST
【发布时间】: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


    【解决方案1】:

    尝试将data=Noneurlopen 一起使用。

    或使用Requests

    【讨论】:

    • 嗨,正如我在帖子中所说,我需要“数据”参数,因为我必须执行 POST 请求。没有数据,我只能发出 GET 请求。
    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多