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 ใช้ความสามารถเครือข่ายของเบราว์เซอร์และต้องใช้นโยบายพร็อกซีของเบราว์เซอร์

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