Tornado-ს პროქსის პარამეტრებს სწორი HTTP backend სჭირდება
სანამ პროქსის მოთხოვნის პარამეტრებს დააკონფიგურირებთ, შეამოწმეთ Tornado-ს აქტიური HTTP კლიენტის იმპლემენტაცია.
Tornado ერთ ასინქრონულ HTTP კლიენტის ინტერფეისს გვთავაზობს, რომლის ქვეშაც სხვადასხვა იმპლემენტაციაა. ამიტომ პროქსის პარამეტრები შეიძლება ჩავარდეს არჩეული იმპლემენტაციის გამო, მაშინაც კი, როცა პროქსის საბოლოო წერტილი სწორია.
HTTP კლიენტის დოკუმენტაცია SimpleAsyncHTTPClient-ს ნაგულისხმევ იმპლემენტაციად მიუთითებს და curl-ზე დაფუძნებულ ალტერნატივას აღწერს. proxy_host-ის მსგავს მოთხოვნის პარამეტრებს იმპლემენტაციაზე დამოკიდებული მხარდაჭერის შენიშვნები აქვთ. წაიკითხეთ ეს შენიშვნები, სანამ fetch-ის გამოძახებას პარამეტრებს დაამატებთ.
დააკონფიგურირეთ კლიენტის შექმნამდე
გარემოში, რომელსაც უკვე აქვს curl backend, აპლიკაციას შეუძლია ის აირჩიოს საკუთარი საერთო კლიენტის შექმნამდე:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
შემდეგ გამოიყენეთ დოკუმენტირებული პროქსის ჰოსტის, პორტის, ავთენტიფიკაციისა და დროის ლიმიტის მოთხოვნის პარამეტრები განზრახული გამოძახებისთვის. ჰოსტის სახელი ცალკე შეინახეთ რიცხვითი პორტისგან. backend-ის არჩევა თავისთავად არ ირჩევს პროქსის საბოლოო წერტილს. დაშვებული საჯარო HTTP მარშრუტისთვის HTTP პროქსების სია გთავაზობთ ჰოსტისა და პორტის კანდიდატებს ამ მოთხოვნის პარამეტრებისთვის.
კლიენტის შექმნა მნიშვნელოვანია, რადგან აპლიკაციამ ან ფრეიმვორკმა შეიძლება HTTP კლიენტი შექმნას და შეინახოს ამ კოდის გაშვებამდე. შეამოწმეთ ჩავარდნილ მოთხოვნაში გამოყენებული ფაქტობრივი ეგზემპლარი, ნაცვლად იმისა, რომ მოგვიანებით სხვა კლიენტი შექმნათ და ჩათვალოთ, რომ ის პირველს ხსნის.
დიაგნოსტიკისთვის ჩაწერეთ აქტიური backend და მისი ძირითადი ბიბლიოთეკის ვერსია ჩავარდნილ ეტაპთან ერთად. გაარჩიეთ მხარდაუჭერელი მოთხოვნის პარამეტრი ქსელის დროის ლიმიტისგან და პროქსის მიერ დაბრუნებული HTTP პასუხისგან. ეს დაკვირვებები სხვადასხვა შესწორებამდე მივყავართ.