Tornado prezentas unu nesinkronan HTTP-klientan interfacon, sub kiu staras diversaj efektivigoj. Tial prokuraj opcioj povas malsukcesi pro la elektita efektivigo eĉ kiam la prokura finpunkto estas ĝusta.

La dokumentaro pri la HTTP-kliento nomas SimpleAsyncHTTPClient la implicita efektivigo kaj dokumentas la curl-bazitan alternativon. Petopcioj kiel proxy_host havas efektivig-specifajn subtennotojn. Legu tiujn notojn antaŭ ol aldoni opciojn al fetch-voko.

Agordu antaŭ ol krei la klienton

En medio jam havanta la curl-backend, aplikaĵo povas elekti ĝin antaŭ ol krei sian kunan klienton:

from tornado.httpclient import AsyncHTTPClient

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

Poste uzu la dokumentitajn petopciojn por prokura gastiganto, pordo, aŭtentigo kaj tempolimo por la celata voko. Tenu la gastigantan nomon aparte de la nombra pordo. Elekti la backend mem ne elektas prokuran finpunkton. Por permesita publika HTTP-itinero, la listo de HTTP-prokuroj provizas gastigantajn kaj pordajn kandidatojn por tiuj petopcioj.

La kreo de la kliento gravas ĉar aplikaĵo aŭ kadro povas krei kaj reteni HTTP-klienton antaŭ ol ĉi tiu kodo ruliĝas. Ekzamenu la faktan instancon uzitan en la malsukcesa peto anstataŭ poste krei alian klienton kaj supozi, ke ĝi klarigas la unuan.

Por diagnozo, registru la aktivan backend kaj la version de ĝia baza biblioteko kune kun la malsukcesa etapo. Distingu ne subtenatan petopcion de reta tempolimo kaj de HTTP-respondo redonita de la prokuro. Tiuj observoj kondukas al malsamaj riparoj.

Rilataj artikoloj