Index: sdk/lib/io/http.dart |
diff --git a/sdk/lib/io/http.dart b/sdk/lib/io/http.dart |
index 912a366d737af66da4a3bdca182ba71b277fcba2..9a54af20c27d0421de5a5aebcb119a3653b36218 100644 |
--- a/sdk/lib/io/http.dart |
+++ b/sdk/lib/io/http.dart |
@@ -866,10 +866,64 @@ abstract class HttpClient { |
* separated by semicolons, e.g. |
* |
* "PROXY host:port; PROXY host2:port2; DIRECT" |
+ * |
+ * The static function [findProxyFromEnvironment] on this class can |
+ * be used to implement proxy server resolving based on environment |
+ * variables. |
*/ |
set findProxy(String f(Uri url)); |
/** |
+ * 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, {"http_proxy": ..., "no_proxy": ...}); |
+ * } |
+ */ |
+ static String findProxyFromEnvironment(Uri url, |
+ {Map<String, String> environment}) { |
+ return _HttpClient._findProxyFromEnvironment(url, environment); |
+ } |
+ |
+ /** |
* Shutdown the HTTP client. If [force] is [:false:] (the default) |
* the [:HttpClient:] will be kept alive until all active |
* connections are done. If [force] is [:true:] any active |