Tornado ofrece unha única interface de cliente HTTP asíncrona con implementacións diferentes por debaixo. Por iso, as opcións de proxy poden fallar pola implementación seleccionada mesmo cando o punto final do proxy é correcto.

A documentación do cliente HTTP identifica SimpleAsyncHTTPClient como a implementación predeterminada e documenta a alternativa baseada en curl. As opcións de solicitude como proxy_host teñen notas de compatibilidade específicas de cada implementación. Lea esas notas antes de engadir opcións a unha chamada fetch.

Configure antes de construír o cliente

Nunha contorna que xa dispón do backend curl, unha aplicación pode seleccionalo antes de crear o seu cliente compartido:

from tornado.httpclient import AsyncHTTPClient

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

Despois use as opcións de solicitude documentadas para host, porto, autenticación e tempo de espera do proxy na chamada prevista. Mantéña o nome de host separado do porto numérico. Escoller o backend non escolle por si só un punto final de proxy. Para unha ruta HTTP pública permitida, a lista de proxies HTTP fornece candidatos de host e porto para esas opcións de solicitude.

A construción do cliente importa porque unha aplicación ou un framework pode crear e reter un cliente HTTP antes de que se execute este código. Inspeccione a instancia real usada na solicitude fallida en lugar de construír outro cliente despois e supoñer que explica o primeiro.

Para o diagnóstico, rexistre o backend activo e a versión da súa biblioteca subxacente xunto coa etapa fallida. Distinga unha opción de solicitude non compatible dun tempo de espera de rede e dunha resposta HTTP devolta polo proxy. Esas observacións levan a correccións diferentes.

Artigos relacionados