Tornado нуди једно асинхроно сучеље HTTP клијента, а испод њега стоје различите имплементације. Зато опције проксија могу да закажу због изабране имплементације, чак и када је крајња тачка проксија исправна.

Документација HTTP клијента наводи SimpleAsyncHTTPClient као подразумевану имплементацију и документује алтернативу засновану на curl-у. Опције захтева попут proxy_host имају напомене о подршци специфичне за имплементацију. Прочитајте те напомене пре додавања опција у позив fetch.

Конфигуришите пре стварања клијента

У окружењу које већ има curl backend, апликација може да га изабере пре стварања свог заједничког клијента:

from tornado.httpclient import AsyncHTTPClient

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

Затим користите документоване опције захтева за хост, порт, аутентификацију и временско ограничење проксија за предвиђени позив. Држите име хоста одвојено од нумеричког порта. Избор backend-а сам по себи не бира крајњу тачку проксија. За дозвољену јавну HTTP руту листа HTTP проксија нуди кандидате за хост и порт за те опције захтева.

Стварање клијента је важно јер апликација или оквир може да створи и задржи HTTP клијент пре него што се овај код изврши. Прегледајте стварну инстанцу коришћену у неуспелом захтеву, уместо да касније правите други клијент и претпостављате да он објашњава први.

За дијагностику забележите активни backend и верзију његове основне библиотеке заједно са фазом у којој је дошло до грешке. Разликујте неподржану опцију захтева од мрежног временског ограничења и од HTTP одговора који је прокси вратио. Та запажања воде ка различитим исправкама.

Повезани чланци