【问题标题】:Can urllib2 make HTTP/1.1 requests?urllib2 可以发出 HTTP/1.1 请求吗?
【发布时间】:2009-12-03 16:11:14
【问题描述】:

编辑:

此问题无效。原来透明代理正在发出向前的 HTTP 1.0 请求,即使 urllib/httplib 最初确实发出了 HTTP 1.1 请求。

原始问题:

默认情况下,urllib2.urlopen 总是发出 HTTP 1.0 请求。

有什么办法让它与 HTTP 1.1 对话?

【问题讨论】:

    标签: python http urllib2


    【解决方案1】:

    为什么你认为它还没有使用 http 1.1?您是否尝试过类似...:

    >>> import urllib2
    >>> urllib2._opener.handlers[1].set_http_debuglevel(100)
    >>> urllib2.urlopen('http://mit.edu').read()[:10]
    connect: (mit.edu, 80)
    send: 'GET / HTTP/1.1
    

    (等等,等等)?这应该表明它已经发送了一个 1.1 GET 请求。

    【讨论】:

      【解决方案2】:

      urllib2 使用 httplib 发出 HTTP 请求。我的 Python 2.6.4 肯定在 httplib 中使用 HTTP/1.1,尽管它可以处理来自 1.1、1.0 或 0.9 服务器的响应。早在 2.3 中,情况似乎就是这样(并且可能回到 1.5)

      但是,如果需要通过代理进行隧道传输,它将发送如下请求:

      CONNECT host:port HTTP/1.0
      

      而且 /1.0 字符串是硬编码的。

      你用的是什么版本的python,你是怎么用urllib2的?

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2015-03-21
      • 1970-01-01
      相关资源
      最近更新 更多