2014-10-30 38 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'