Tornado menyediakan satu antara muka klien HTTP tak selanjar dengan pelaksanaan berbeza di bawahnya. Oleh itu pilihan proksi boleh gagal disebabkan pelaksanaan yang dipilih walaupun titik akhir proksi betul.

Dokumentasi klien HTTP mengenal pasti SimpleAsyncHTTPClient sebagai pelaksanaan lalai dan mendokumenkan alternatif berasaskan curl. Pilihan permintaan seperti proxy_host mempunyai nota sokongan khusus pelaksanaan. Baca nota tersebut sebelum menambah pilihan pada panggilan fetch.

Konfigurasi sebelum membina klien

Dalam persekitaran yang sudah mempunyai backend curl, aplikasi boleh memilihnya sebelum mencipta klien kongsinya:

from tornado.httpclient import AsyncHTTPClient

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

Kemudian gunakan pilihan permintaan berdokumen untuk hos, port, pengesahan dan had masa proksi bagi panggilan yang dimaksudkan. Asingkan nama hos daripada port berangka. Memilih backend tidak memilih titik akhir proksi dengan sendirinya. Untuk laluan HTTP awam yang dibenarkan, senarai proksi HTTP menyediakan calon hos dan port untuk pilihan permintaan itu.

Pembinaan klien penting kerana aplikasi atau rangka kerja boleh mencipta dan menyimpan klien HTTP sebelum kod ini berjalan. Periksa instans sebenar yang digunakan dalam permintaan yang gagal, bukannya mencipta klien lain kemudian dan menganggapnya menjelaskan yang pertama.

Untuk diagnosis, rekod backend aktif dan versi pustaka asasnya bersama peringkat yang gagal. Bezakan pilihan permintaan yang tidak disokong daripada had masa rangkaian dan daripada respons HTTP yang dikembalikan oleh proksi. Pemerhatian itu membawa kepada pembetulan yang berbeza.

Artikel berkaitan