findProxy ใน Dart คาดหวังคำสั่งเส้นทาง
ส่งคืนคำสั่ง PROXY host:port จาก dart:io HttpClient.findProxy และเลือกทางสำรองโดยตรงอย่างตั้งใจ
HttpClient ของ dart:io รับการตัดสินใจเรื่องพร็อกซีผ่าน findProxy ฟังก์ชันเรียกกลับคืนค่าคำสั่งแบบ PAC:
import 'dart:io';
final client = HttpClient()
..findProxy = (_) => 'PROXY proxy.example.net:8080';
ใช้ไคลเอนต์นี้สำหรับคำขอของแอปพลิเคชัน การคืน http://proxy.example.net:8080 เป็นรูปแบบที่ผิดสำหรับฟังก์ชันนี้ รูปแบบที่รองรับคือ PROXY ตามด้วยโฮสต์และพอร์ต สำหรับคำขอสาธารณะที่อนุญาต ให้เลือกผู้สมัคร HTTP จากรายการพร็อกซี HTTP แล้วจัดรูปแบบเป็นคำสั่งนั้น
ฟังก์ชันได้รับ URI ปลายทาง จึงสามารถคืน DIRECT เพื่อข้ามอย่างตั้งใจได้ ผลลัพธ์เช่น PROXY proxy.example.net:8080; DIRECT ยังอนุญาตทางสำรองโดยตรงเมื่อใช้พร็อกซีไม่ได้ หากไม่ต้องการทางสำรองนั้นให้ละ DIRECT ไว้
หากไม่มีฟังก์ชัน findProxy API นี้ใช้การเชื่อมต่อโดยตรง แอปพลิเคชันที่ต้องการเลือกตามสภาพแวดล้อมสามารถกำหนด HttpClient.findProxyFromEnvironment ให้ฟังก์ชันแทนได้
สิ่งนี้ใช้กับโค้ด Flutter ที่ใช้ dart:io บนแพลตฟอร์มเนทีฟที่รองรับ คำขอของ Flutter Web ใช้ความสามารถเครือข่ายของเบราว์เซอร์และต้องใช้นโยบายพร็อกซีของเบราว์เซอร์