Mit dem requests
Python lib ich eine GET-Anfrage zu machen, und Timeout Ausnahmen behandeln (wie auch andere Ausnahmen ich nicht hier zeigen) wieSockel-Timeout: Zeitüberschreitung Python-Anfragen
import requests
timeout1=20
timeout2=40
try:
#first attempt
resp = requests.get(base_url+resource, params=payload, headers=headers,
timeout=timeout1)
except requests.exceptions.Timeout:
#timed out, retry once
try:
resp = requests.get(base_url+resource, params=payload, headers=headers,
timeout=timeout2)
return resp.json()
except requests.exceptions.RequestException as e:
#Still failed; return error code
return -1
Dies funktioniert in Ordnung die meiste Zeit, aber manchmal mein Programm nur komplett mit dem Fehler socket.timeout: timed out
, anstatt die requests.exceptions.Timeout
zu werfen und dieses wird erwischt und behandelt.
Warum verhält sich die Anfrage-Lib so? Wie soll ich damit umgehen?
Haben Sie die Antwort für dieses Problem gefunden? – user2801184
Hier ist die Antwort: versuchen Sie: data = sock.recv (256) außer socket.timeout: data = "KEINE ANTWORT" – user2801184