Tornado tarpinio serverio parinktims reikia tinkamos HTTP pagrindo
Prieš konfigūruodami tarpinio serverio užklausos parinktis, patikrinkite aktyvią Tornado HTTP kliento implementaciją.
Tornado siūlo vieną asinchroninę HTTP kliento sąsają, po kuria slypi skirtingos implementacijos. Todėl tarpinio serverio parinktys gali nepavykti dėl pasirinktos implementacijos, net kai tarpinio serverio galinis taškas yra teisingas.
HTTP kliento dokumentacija nurodo SimpleAsyncHTTPClient kaip numatytąją implementaciją ir dokumentuoja curl pagrįstą alternatyvą. Užklausos parinktys, tokios kaip proxy_host, turi implementacijai būdingas palaikymo pastabas. Perskaitykite tas pastabas prieš pridėdami parinktis prie fetch iškvietimo.
Konfigūruokite prieš kuriant klientą
Aplinkoje, kuri jau turi curl pagrindą, programa gali jį pasirinkti prieš sukurdama bendrą klientą:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Tada numatytam iškvietimui naudokite dokumentuotas tarpinio serverio hosto, prievado, autentifikavimo ir laiko limito užklausos parinktis. Laikykite hosto vardą atskirai nuo skaitmeninio prievado. Pagrindo pasirinkimas pats savaime nepasirenka tarpinio serverio galinio taško. Leidžiamam viešam HTTP maršrutui HTTP tarpinių serverių sąrašas siūlo hosto ir prievado kandidatus toms užklausos parinktims.
Kliento kūrimas svarbus, nes programa ar karkasas gali sukurti ir išlaikyti HTTP klientą prieš šiam kodui paleidžiant. Ištirkite tikrąjį egzempliorių, naudotą nepavykusioje užklausoje, o ne vėliau kurkite kitą klientą ir manykite, kad jis paaiškina pirmąjį.
Diagnostikai užrašykite aktyvų pagrindą ir jo pagrindinės bibliotekos versiją kartu su nepavykusiu etapu. Atskirkite nepalaikomą užklausos parinktį nuo tinklo laiko limito ir nuo tarpinio serverio grąžinto HTTP atsakymo. Šie pastebėjimai veda prie skirtingų pataisymų.