2014-10-30 6 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 

인쇄물이 인쇄되지 않습니다.

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

실제 오류를 표시 할 수 있습니까? –

+0

가능한 속임수 (http://stackoverflow.com/questions/1767934/why-am-i-getting-this-error-in-python-httplib)? – Noelkd

답변

1

소스는 ('httplib.py')는 'BadStatusLine을 제기 한 경우에이 말한다 : 요청으로 나는 다음과 같이 httplib.BadStatusLine를 제외하고는 제거 할 때

은, 실제 오류가 발생되고 ':

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

아마이 행이 null이거나 비어 있다는 의미입니다.

출처 : https://hg.python.org/cpython/file/2.7/Lib/httplib.py

이 피곤 프로그래머의 결정과 같다; 'NoStatusLine'과 같은 또 다른 예외를 정의하는 것이 더 낫습니다.