Метод findProxyFromEnvironment
Функция для определения прокси-сервера, используемого для HTTP-соединения, на основе конфигурации прокси, указанной через переменные среды.
Учитываются следующие переменные среды:
http_proxy https_proxy no_proxy HTTP_PROXY HTTPS_PROXY NO_PROXY
http_proxy и HTTP_PROXY задают прокси-сервер для использования с http:// адресами. Используйте формат hostname:port. Если порт не указан, используется значение по умолчанию 1080. Если оба значения заданы, приоритет имеет значение в нижнем регистре.
https_proxy и HTTPS_PROXY задают прокси-сервер для использования с https:// адресами. Используйте формат hostname:port. Если порт не указан, используется значение по умолчанию 1080. Если оба значения заданы, приоритет имеет значение в нижнем регистре.
no_proxy и NO_PROXY задают список, разделенный запятыми, суффиксов имен хостов, для которых не нужно использовать прокси-сервер. Например, значение "localhost,127.0.0.1" приведет к тому, что запросы к "localhost" и "127.0.0.1" не будут использовать прокси. Если оба значения заданы, приоритет имеет значение в нижнем регистре.
Чтобы активировать этот способ определения прокси, назначьте эту функцию свойству findProxy объекта HttpClient.
HttpClient client = HttpClient(); client.findProxy = HttpClient.findProxyFromEnvironment;
Если вы не хотите использовать системную среду, вы можете использовать другую, обернув функцию.
HttpClient client = HttpClient();
client.findProxy = (url) {
return HttpClient.findProxyFromEnvironment(
url, environment: {"http_proxy": ..., "no_proxy": ...});
}
Если прокси требует аутентификации, вы можете также настроить имя пользователя и пароль. Используйте формат username:password@hostname:port для включения имени пользователя и пароля. В качестве альтернативы можно использовать API addProxyCredentials для установки учетных данных для прокси, требующих аутентификации.
Реализация
static String findProxyFromEnvironment(Uri url,
{Map<String, String>? environment}) {
HttpOverrides? overrides = HttpOverrides.current;
if (overrides == null) {
return _HttpClient._findProxyFromEnvironment(url, environment);
}
return overrides.findProxyFromEnvironment(url, environment);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/HttpClient/findProxyFromEnvironment.html