Function for resolving the proxy server to be used for a 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 = new 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 = new 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.
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 Creative Commons Attribution-ShareAlike License v4.0.
https://api.dart.dev/stable/2.5.0/dart-io/HttpClient/findProxyFromEnvironment.html