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 ที่พร็อกซีส่งกลับ การสังเกตเหล่านี้นำไปสู่การแก้ไขที่ต่างกัน

บทความที่เกี่ยวข้อง