Tornado ponúka jedno asynchrónne rozhranie HTTP klienta, pod ktorým stoja rôzne implementácie. Možnosti proxy preto môžu zlyhať pre zvolenú implementáciu, aj keď je koncový bod proxy správny.

V dokumentácii HTTP klienta je SimpleAsyncHTTPClient označený ako predvolená implementácia a je tu opísaná aj alternatíva založená na curl. Možnosti požiadavky ako proxy_host majú poznámky k podpore špecifické pre implementáciu. Prečítajte si tieto poznámky skôr, než do volania fetch pridáte možnosti.

Nastavte pred vytvorením klienta

V prostredí, ktoré už má backend curl, ho aplikácia môže zvoliť pred vytvorením svojho zdieľaného klienta:

from tornado.httpclient import AsyncHTTPClient

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

Potom použite dokumentované možnosti požiadavky pre host, port, overenie a časový limit proxy v zamýšľanom volaní. Udržujte názov hostu oddelený od číselného portu. Voľba backendu sama o sebe nevyberá koncový bod proxy. Pre povolenú verejnú HTTP trasu zoznam HTTP proxy poskytuje kandidátov hostu a portu pre tie možnosti požiadavky.

Vytvorenie klienta je dôležité, pretože aplikácia alebo rámec môže vytvoriť a podržať HTTP klienta pred spustením tohto kódu. Preskúmajte skutočnú inštanciu použitú v neúspešnej požiadavke, namiesto toho aby ste neskôr vytvorili iného klienta a predpokladali, že vysvetľuje toho prvého.

Pre diagnostiku zaznamenajte aktívny backend a verziu jeho podkladovej knižnice spolu s fázou, v ktorej došlo k zlyhaniu. Odlíšte nepodporovanú možnosť požiadavky od sieťového časového limitu a od odpovede HTTP vrátenej proxy. Tieto pozorovania vedú k rôznym opravám.

Súvisiace články