【问题标题】:Python: Urllib2 check for missing content-length in headerPython:Urllib2 检查标头中缺少的内容长度
【发布时间】:2012-11-14 16:51:30
【问题描述】:

我有一个脚本“看起来”可以在我们的测试环境中工作,因为缺乏可见性。但是,我们现在正在我们的预生产环境中进行测试,我们注意到以下问题...

脚本的基本功能是在主机 Web 前端执行 HTTP/URL 请求并返回状态码和内容大小(即content-length)。我无法解决问题,如何在将 content-lenght 分配给变量之前对其进行检查。目前我有以下内容:

#... Code ...
try:
  conn = urllib2.urlopen(line, timeout=1)
  contentLen = conn.headers['content-length']
#... Code ...

但是,对于缺少此内容长度的 URL,如果缺少内容长度,它只会破坏脚本。我不想引发异常,而是想在分配contentLen 之前简单地检查它是否存在,然后如果它存在则分配实际的content-length 值,如果它不存在则分配值“NULL”。所以这可以打印为“Null”。

提前致谢。

【问题讨论】:

    标签: python urllib2 content-length


    【解决方案1】:

    conn.headers 是一个httplib.HTTPMessage,它是rfc822.Message 的子类,因此有一个(有限的)dict-like interface。您可以使用 2 参数调用 get 来提供默认值。

    contentLen = conn.headers.get('content-length','NULL')
    

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-28
      • 1970-01-01
      • 2013-01-23
      • 2021-12-27
      • 2011-11-17
      • 2012-04-01
      相关资源
      最近更新 更多