یک 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 از امکانات شبکه مرورگر استفاده می‌کنند و به سیاست پروکسی مرورگر نیاز دارند.

مقالات مرتبط