Tornado proxy opcije zahtijevaju ispravan HTTP backend
Provjerite aktivnu implementaciju HTTP klijenta u Tornadu prije konfigurisanja opcija proxy zahtjeva.
Tornado nudi jedno asinhrono sučelje HTTP klijenta, ispod kojeg stoje različite implementacije. Proxy opcije zato mogu zakazati zbog odabrane implementacije čak i kada je krajnja točka proxyja ispravna.
Dokumentacija HTTP klijenta navodi SimpleAsyncHTTPClient kao zadanu implementaciju i dokumentira alternativu zasnovanu na curlu. Opcije zahtjeva poput proxy_host imaju napomene o podršci specifične za implementaciju. Pročitajte te napomene prije dodavanja opcija u poziv fetch.
Konfigurišite prije stvaranja klijenta
U okruženju koje već ima curl backend, aplikacija ga može odabrati prije stvaranja svog zajedničkog klijenta:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Zatim upotrijebite dokumentirane opcije zahtjeva za proxy host, port, autentifikaciju i vremensko ograničenje za predviđeni poziv. Držite ime hosta odvojeno od numeričkog porta. Odabir backenda sam po sebi ne bira krajnju točku proxyja. Za dopuštenu javnu HTTP rutu lista HTTP proxyja nudi kandidate za host i port za te opcije zahtjeva.
Stvaranje klijenta je važno jer aplikacija ili framework može stvoriti i zadržati HTTP klijent prije nego se ovaj kod izvrši. Provjerite stvarnu instancu korištenu u neuspjelom zahtjevu, umjesto da kasnije stvarate drugi klijent i pretpostavljate da on objašnjava prvi.
Za dijagnostiku zabilježite aktivni backend i verziju njegove osnovne biblioteke uz fazu u kojoj je došlo do greške. Razlikujte nepodržanu opciju zahtjeva od mrežnog vremenskog ograničenja i od HTTP odgovora koji je vratio proxy. Ta zapažanja vode različitim ispravkama.