Tornado падае адзін асінхронны інтэрфейс HTTP-кліента, пад якім знаходзяцца розныя рэалізацыі. Таму опцыі проксі могуць не працаваць з-за абранай рэалізацыі, нават калі канцавы пункт проксі правільны.

У дакументацыі HTTP-кліента SimpleAsyncHTTPClient пазначаны як рэалізацыя па змаўчанні, а таксама апісаны альтэрнатыўны варыянт на аснове curl. Опцыі запыту, такія як proxy_host, маюць заўвагі пра падтрымку, залежныя ад рэалізацыі. Прачытайце гэтыя заўвагі перад даданнем опцый у выклік fetch.

Наладзьце перад стварэннем кліента

У асяроддзі, якое ўжо мае бэкенд curl, праграма можа выбраць яго перад стварэннем свайго агульнага кліента:

from tornado.httpclient import AsyncHTTPClient

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

Затым выкарыстоўвайце дакументаваныя опцыі запыту для хаста, порта, аўтэнтыфікацыі і тайм-аўту для патрэбнага выкліку. Трымайце імя хаста асобна ад лікавага порта. Выбар бэкенда сам па сабе не выбірае канцавы пункт проксі. Для дазволенага публічнага маршруту HTTP спіс HTTP-проксі прапануе кандыдатаў хаста і порта для гэтых опцый запыту.

Стварэнне кліента важнае, бо праграма або фрэймворк могуць стварыць і захаваць HTTP-кліент да выканання гэтага кода. Праверце фактычны асобнік, які выкарыстоўваўся ў няўдалым запыце, замест таго каб пазней стварыць іншы кліент і меркаваць, што ён тлумачыць першы.

Для дыягностыкі запішыце актыўны бэкенд і версію яго базавай бібліятэкі разам з этапам, на якім адбылася памылка. Адрознівайце неподтрымліваемую опцыю запыту ад сеткавага тайм-аўту і ад HTTP-адказу, вернутага проксі. Гэтыя назіранні вядуць да розных выпраўленняў.

Падобныя артыкулы