Python-Anfragen mit HTTPAdapter halten stundenlang an

8

Ich habe eine spezielle URL, bei der mein Code stundenlang anhält (mehr als 3 Stunden). Ich kann nicht verstehen, warum es das tun würde.

Die URL lautet Ссылка .

Direct requests.get () funktioniert sofort, aber wenn ich einen HTTPAdapter habe, scheint der Code fast unbegrenzt zu schlafen

%Vor%     
fast_cen 20.11.2017, 17:35
quelle

3 Antworten

5

Der Wiederholungs-Header in der Antwort ist das Problem, das die Verbindung für 3600 Sekunden in Ruhe setzt. Siehe retry.py in urllib3.

%Vor%

Die Lösung besteht darin, max_retries = 0 zu setzen. Dies vermeidet 2x3600 Sekunden warten, bis Ihre Anwendung endet.

    
TheCurl 23.11.2017 10:39
quelle
4

Der Adapter, den Sie initialisieren, setzen den Wiederholungsversuch unter

%Vor%

Und wenn Sie sich die Initialisierung ansehen

%Vor%

Der Standardwert von respect_retry_after_header ist True . Sie benötigen diese False in Ihrem Fall. Wenn Sie die Antwort mit curl überprüfen

%Vor%

Sie möchten, dass respect_retry_after_header auf False gesetzt wird. Dies kann durch Erstellen des Adapters und anschließendes Ändern dieses Verhaltens erfolgen.

%Vor%     
Tarun Lalwani 23.11.2017 14:17
quelle
0

Wie Mylsal gesagt hat, versuche es mit max_entries

%Vor%     
user8997756 23.11.2017 19:19
quelle

Tags und Links