findProxyFromEnvironment method - HttpClient class - dart:io library (original) (raw)
String findProxyFromEnvironment(
Function for resolving the proxy server to be used for an HTTP connection from the proxy configuration specified through environment variables.
The following environment variables are taken into account:
http_proxy
https_proxy
no_proxy
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
http_proxy
and HTTP_PROXY
specify the proxy server to use for http:// urls. Use the format hostname:port
. If no port is used a default of 1080 will be used. If both are set the lower case one takes precedence.
https_proxy
and HTTPS_PROXY
specify the proxy server to use for https:// urls. Use the format hostname:port
. If no port is used a default of 1080 will be used. If both are set the lower case one takes precedence.
no_proxy
and NO_PROXY
specify a comma separated list of postfixes of hostnames for which not to use the proxy server. E.g. the value "localhost,127.0.0.1" will make requests to both "localhost" and "127.0.0.1" not use a proxy. If both are set the lower case one takes precedence.
To activate this way of resolving proxies assign this function to the findProxy property on the HttpClient.
HttpClient client = HttpClient();
client.findProxy = HttpClient.findProxyFromEnvironment;
If you don't want to use the system environment you can use a different one by wrapping the function.
HttpClient client = HttpClient();
client.findProxy = (url) {
return HttpClient.findProxyFromEnvironment(
url, environment: {"http_proxy": ..., "no_proxy": ...});
}
If a proxy requires authentication it is possible to configure the username and password as well. Use the formatusername:password@hostname:port
to include the username and password. Alternatively the API addProxyCredentials can be used to set credentials for proxies which require authentication.
Implementation
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);
}