findProxyFromEnvironment static method
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 format
username: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);
}