2014-10-30 74 views
0

执行以下python脚本后,我收到BadStatusLine。我如何打印有关BadStatusLine的详细信息?python:打印有关BadStatusLine错误的信息

#!/usr/bin/python 

import urllib 
import urllib2 
import httplib 


try: 
    # NoActiveDevsPerQtr 
    request = urllib2.Request('http://127.0.0.1:8090') 

    request.add_header('Accept',  'text/csv') 
    request.add_header('User-Agent', 'python-script') 

    request.add_data(""" 
     <? xml version="1.0"?> 
     <log_query> 
      <querytype>ListPerQtr</querytype> 
      <year>2014</year> 
      <quarter>3</quarter> 
     </log_query> 
    """) 


    response = urllib2.urlopen(request) 
    content = response.read() 
    print content 

except httplib.BadStatusLine as e: 
    print e 

打印e不打印任何东西。

Traceback (most recent call last): 
File "./IQueryTests.py", line 25, in <module> 
response = urllib2.urlopen(request) 
File "/usr/lib64/python2.6/urllib2.py", line 126, in urlopen 
return _opener.open(url, data, timeout) 
File "/usr/lib64/python2.6/urllib2.py", line 391, in open 
response = self._open(req, data) 
File "/usr/lib64/python2.6/urllib2.py", line 409, in _open 
'_open', req) 
File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain 
result = func(*args) 
File "/usr/lib64/python2.6/urllib2.py", line 1190, in http_open 
return self.do_open(httplib.HTTPConnection, req) 
File "/usr/lib64/python2.6/urllib2.py", line 1163, in do_open 
r = h.getresponse() 
File "/usr/lib64/python2.6/httplib.py", line 990, in getresponse 
response.begin() 
File "/usr/lib64/python2.6/httplib.py", line 391, in begin 
version, status, reason = self._read_status() 
File "/usr/lib64/python2.6/httplib.py", line 355, in _read_status 
raise BadStatusLine(line) 
httplib.BadStatusLine 
+0

您能否显示正在抛出的实际错误? – 2014-10-30 15:10:18

+0

可能[dupe](http://stackoverflow.com/questions/1767934/why-am-i-getting-this-error-in-python-httplib)? – Noelkd 2014-10-30 15:34:32

回答

1

源(“httplib.py”)表示,这在它提出“BadStatusLine一种情况:

按照要求,当我删除除了httplib.BadStatusLine是如下被抛出的实际错误':

 if not line: 
     # Presumably, the server closed the connection before 
     # sending a valid response. 
     raise BadStatusLine(line) 

也许你正在碰到这种情况,暗示该行为空或空。

来源: https://hg.python.org/cpython/file/2.7/Lib/httplib.py

这看起来像一个疲惫的程序员决定;定义另一个例外情况会更好,比如'NoStatusLine'