Was bedeutet die Fehlermeldung 'BadStatusLine' ?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Sonntag 27. Januar 2008, 15:15

Hallo,
ich habe im Zusammenhang mit urllib2 immer wieder folgende Fehlermeldung. Würde die Fehlermeldung gerne verstehen, oder wenigstens abfangen können.

Mit

Code: Alles auswählen

except urllib2.URLError, exception:
geht Letzteres leider nicht.

Hier die Fehlermeldung:

Code: Alles auswählen

   u = urllib2.urlopen(url)
  File "C:\Programme\Python25\lib\urllib2.py", line 121, in urlopen
    return _opener.open(url, data)
  File "C:\Programme\Python25\lib\urllib2.py", line 374, in open
    response = self._open(req, data)
  File "C:\Programme\Python25\lib\urllib2.py", line 392, in _open
    '_open', req)
  File "C:\Programme\Python25\lib\urllib2.py", line 353, in _call_chain
    result = func(*args)
  File "C:\Programme\Python25\lib\urllib2.py", line 1100, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Programme\Python25\lib\urllib2.py", line 1073, in do_open
    r = h.getresponse()
  File "C:\Programme\Python25\lib\httplib.py", line 924, in getresponse
    response.begin()
  File "C:\Programme\Python25\lib\httplib.py", line 385, in begin
    version, status, reason = self._read_status()
  File "C:\Programme\Python25\lib\httplib.py", line 349, in _read_status
    raise BadStatusLine(line)
BadStatusLine
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Sonntag 27. Januar 2008, 15:29

Die Exception wird vom httplib-Modul ge`raise't, wenn die httplib bei einer HTTP-Antwort nichts mit der Statuszeile anfangen kann.

Kann man mit

Code: Alles auswählen

from httplib import BadStatusLine
# ...
except BadStatusLine:
    pass
abfangen.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Sonntag 27. Januar 2008, 18:28

Danke,
werde die except-Zeile gleich mal einfügen.
Was ist die Status-Line eigentlich und wie kann ich die mir sichtbar machen, bzw. ausgeben lassen ?

Gruß, Seven
BlackJack

Sonntag 27. Januar 2008, 20:23

Das ist die erste Zeile mit der ein HTTP-Server auf eine Anfrage antwortet. Die besteht aus der HTTP-Version, die der Server spricht, einer Statuszahl und einem Statustext. Im Normalfall, wenn alles okay war ist das so etwas wie 'HTTP/1.1 200 OK'

Die ganze Geschichte ist in RFC2616 nach zu lesen.
Antworten