Seite 1 von 1
Exceptions Klasse für httplib Connection Error finden?
Verfasst: Freitag 6. Oktober 2006, 15:31
von 7crystal7
Hallo Leute,
ich versuche mich mittels der httplib über https zu verbinden und möchte gerne diesen Fehler abfangen, hier der Traceback:
* Module httplib, line 794, in endheaders
* Module httplib, line 675, in _send_output
* Module httplib, line 642, in send
* Module httplib, line 1068, in connect
* Module socket, line 1, in connect
error: (111, 'Connection refused')
Nicht das ihr mich falsch versteht, der Fehler ist bewusst provoziert, ich möchte ihn gerne abfangen und weiß nicht mit welcher Exceptions Klasse ich arbeiten muss. Wisst Ihr weiter?
Danke
Babsi
Verfasst: Freitag 6. Oktober 2006, 15:59
von rayo
Verfasst: Freitag 6. Oktober 2006, 16:04
von 7crystal7
danke, so kann ich den Fehler abfangen oder finde ich so die entsprechende Klasse? Bin noch nicht so lang dabei,
danke
Babsi
Verfasst: Freitag 6. Oktober 2006, 17:54
von BlackJack
So behandelst Du jeden `socket.error`. Wenn Du speziell auf 111/Connection refused reagieren willst, dann musst Du Dir das Ausnahme-Objekt, im Beispiel an den Namen `e` gebunden genauer ansehen. Das hat Attribute. Wenn's nicht die 111 ist, dann einfach mit ``raise`` die Ausnahme erneut auslösen falls sich Code auf einer "höheren Ebene" verantwortlich fühlt.
Verfasst: Samstag 7. Oktober 2006, 07:54
von 7crystal7
super danke!
Wisst ihr vielleicht auch wie man bei der httplib ein Connection TimeOut Limit setzen kann?
danke
babsi
Verfasst: Samstag 7. Oktober 2006, 08:08
von rayo
Verfasst: Samstag 7. Oktober 2006, 08:23
von 7crystal7
klasse dank!
Verfasst: Samstag 7. Oktober 2006, 10:32
von 7crystal7
sorry nochmal, ich hätte nochmal ne frage zum timeout. Im Beispiel des Links wird die Connection anders erstellt als bei mir, ich erstelle diese so:
Code: Alles auswählen
http = httplib.HTTPS(xml_constants("host"))
d = {}
# write header
http.putrequest(type, path)
wie kann ich hier das Timeout setzen?
danke
Babsi
Verfasst: Samstag 7. Oktober 2006, 10:47
von rayo
Verfasst: Samstag 7. Oktober 2006, 10:52
von 7crystal7
danke ich teste es mal, folgendes ist noch zur Auswahl:
httplib.socket.setdefaulttimeout
und ich hab im netz noch das gefunden:
http://www.nongnu.org/bothans/pydoc/com ... ocket.html
aber ich kann das paket nicht importieren..
danke
babsi
Verfasst: Samstag 7. Oktober 2006, 10:55
von 7crystal7
sorry, auf Deinen vorschlag kommt leider:
AttributeError: 'NoneType' object has no attribute 'settimeout'
Danke
Babsi
Verfasst: Samstag 7. Oktober 2006, 11:07
von 7crystal7
hallo,
also ich machs jetzt so und das funktioniert eigentlich:
Das Problem ist das ich daraufhin folgenden Fehler bekomme:
sslerror: The read operation timed out
Wo kommt der jetzt auf einmal her, wie kann ich den abfangen?
Lieben Dank,
Babsi
Verfasst: Samstag 7. Oktober 2006, 11:16
von rayo
Hi
Das kommt wenn das Timeout erreicht wurde ...
Code: Alles auswählen
try:
...
except socket.sslerror, e:
print 'sslerror',e
Gruss
Verfasst: Samstag 7. Oktober 2006, 11:24
von 7crystal7