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 використовують мережеві можливості браузера і потребують його політики проксі.

Схожі статті