Was bedeutet die Fehlermeldung 'BadStatusLine' ?

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

Was bedeutet die Fehlermeldung 'BadStatusLine' ?

Beitragvon snakeseven » 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=]except urllib2.URLError, exception:[/code]
geht Letzteres leider nicht.

Hier die Fehlermeldung:
[code=] 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[/code]
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » 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.
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » 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

Beitragvon 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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder