Tornado ofereix una única interfície de client HTTP asíncrona amb implementacions diferents a sota. Per això, les opcions de proxy poden fallar per la implementació seleccionada fins i tot quan el punt final del proxy és correcte.

La documentació del client HTTP identifica SimpleAsyncHTTPClient com la implementació per defecte i documenta l'alternativa basada en curl. Les opcions de petició com proxy_host tenen notes de suport específiques de cada implementació. Llegiu aquestes notes abans d'afegir opcions a una crida fetch.

Configureu abans de construir el client

En un entorn que ja disposa del backend curl, una aplicació el pot seleccionar abans de crear el seu client compartit:

from tornado.httpclient import AsyncHTTPClient

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

Després feu servir les opcions de petició documentades per a amfitrió, port, autenticació i temps d'espera del proxy per a la crida prevista. Manteniu el nom d'amfitrió separat del port numèric. Triar el backend no tria per si mateix un punt final de proxy. Per a una ruta HTTP pública permesa, la llista de proxys HTTP proporciona candidats d'amfitrió i port per a aquestes opcions de petició.

La construcció del client importa perquè una aplicació o un framework pot crear i retenir un client HTTP abans que s'executi aquest codi. Inspeccioneu la instància real utilitzada en la petició fallida en lloc de construir-ne un altre després i suposar que explica el primer.

Per al diagnòstic, registreu el backend actiu i la versió de la biblioteca subjacent juntament amb l'etapa fallida. Distingiu una opció de petició no suportada d'un temps d'espera de xarxa i d'una resposta HTTP retornada pel proxy. Aquestes observacions porten a correccions diferents.

Articles relacionats