【问题标题】:HTTPS request in PythonPython 中的 HTTPS 请求
【发布时间】:2012-04-08 00:17:01
【问题描述】:

我想在 Python 3.2 中通过 HTTPS 连接到一个站点。

我试过了

    conn = http.client.HTTPSConnection(urlStr, 8443)
    conn.putrequest('GET', '/')
    response = conn.getresponse()  
    print(response.read())

但我明白了

    http.client.ResponseNotReady: Request-started

有谁知道问题出在哪里?

【问题讨论】:

    标签: python https


    【解决方案1】:

    首先,如果你只是想下载一些东西而不想要任何特殊的HTTP请求,你应该使用urllib.request而不是http.client

    import urllib.request
    r = urllib.request.urlopen('https://paypal.com/')
    print(r.read())
    

    如果你真的想使用http.client,你必须在发送请求头后调用endheaders

    import http.client
    conn = http.client.HTTPSConnection('paypal.com', 443)
    conn.putrequest('GET', '/')
    conn.endheaders() # <---
    r = conn.getresponse()
    print(r.read())
    

    作为putrequest/endheaders的快捷方式,您还可以使用request方法,如下所示:

    import http.client
    conn = http.client.HTTPSConnection('paypal.com', 443)
    conn.request('GET', '/') # <---
    r = conn.getresponse()
    print(r.read())
    

    【讨论】:

      【解决方案2】:

      你可以用request代替putrequest

      conn.request('GET', '/')
      resp = conn.getresponse()
      print(resp.read())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多