Tornado ponuja en vmesnik asinhronega odjemalca HTTP, pod katerim so različne izvedbe. Zato lahko možnosti proxy odpovejo zaradi izbrane izvedbe, tudi ko je končna točka proxyja pravilna.

Dokumentacija odjemalca HTTP navaja SimpleAsyncHTTPClient kot privzeto izvedbo in dokumentira alternativo, ki temelji na curl. Možnosti zahteve, kot je proxy_host, imajo opombe o podpori, specifične za izvedbo. Preberite te opombe, preden možnosti dodate klicu fetch.

Nastavite pred ustvarjanjem odjemalca

V okolju, ki že ima backend curl, ga lahko aplikacija izbere, preden ustvari svoj skupni odjemalec:

from tornado.httpclient import AsyncHTTPClient

AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()

Nato za predvideni klic uporabite dokumentirane možnosti zahteve za gostitelja, vrata, preverjanje pristnosti in časovno omejitev proxyja. Ime gostitelja hranite ločeno od številskih vrat. Izbira backend ne izbere sama po sebi končne točke proxyja. Za dovoljeno javno pot HTTP seznam proxyjev HTTP ponuja kandidate za gostitelja in vrata za te možnosti zahteve.

Ustvarjanje odjemalca je pomembno, ker lahko aplikacija ali ogrodje ustvari in obdrži odjemalca HTTP, preden se ta koda izvede. Preverite dejanski primerek, uporabljen v neuspešni zahtevi, namesto da pozneje ustvarite drugega odjemalca in domnevate, da pojasnjuje prvega.

Za diagnostiko zabeležite aktivni backend in različico njegove osnovne knjižnice skupaj s stopnjo, na kateri je prišlo do napake. Ločite nepodprto možnost zahteve od omrežne časovne omejitve in od odgovora HTTP, ki ga je vrnil proxy. Ta opažanja vodijo do različnih popravkov.

Sorodni članki