如何从 WebClient 对象获取代理信息?
How to get proxy info from WebClient object?
我为 WebClient 对象设置了代理 属性:
WebProxy wp = new WebProxy("proxy server url and credentials here");
webClient.Proxy = wp;
如何从现有的 WebClient 对象中以字符串形式获取主机、端口、用户名、密码等代理信息?
例如:
var test =
webClient.Proxy as WebProxy;
var test2 = test.Address;
var test3 = webClient.Proxy.Credentials as NetworkCredential;
var test4 = test3.UserName;
var test5 = test3.Password;
但这不起作用,因为我从 Proxy 和 Proxy.Credentials 获得的对象为空。
我如何简单地获取这些信息?
Proxy Uri是context bind,也就是说对于不同的原始请求一个proxy配置可以提供不同的proxy Uris。要获得实际的代理 Uri(主机、端口、协议等),您必须提供原始 Uri
Uri proxyUri = yourWebClient.Proxy.GetProxy(new Uri(originalRequestUrl))
或
Uri proxyUri = yourWebClient.Proxy.GetProxy(originalRequestUri)
然后您可以使用 proxyUri 变量的属性,如主机、端口等。
注意:如果您返回原始 Uri,则意味着:没有有效的代理。
如果提供原始请求 Uri 对您来说是个问题,和您确定所有 Uris 的代理都是相同的,那么 ypi cam 只需提供一个虚拟对象(但是有效的)uri(虽然这是一个丑陋的解决方案)如:
Uri proxyUri = yourWebClient.Proxy.GetProxy(new Uri("http://www.google.com"))
显然这不会导致 www.google.com 的流量,只是获取代理配置。
关于凭证同样的故事:
NetworkCredential credential = yourWebClient.Proxy.Credentials.GetCredential(...)
通过凭据变量,您可以获得域、用户名和密码* 属性。
(*仅作记录:不推荐使用登录密码)
我为 WebClient 对象设置了代理 属性:
WebProxy wp = new WebProxy("proxy server url and credentials here");
webClient.Proxy = wp;
如何从现有的 WebClient 对象中以字符串形式获取主机、端口、用户名、密码等代理信息?
例如:
var test =
webClient.Proxy as WebProxy;
var test2 = test.Address;
var test3 = webClient.Proxy.Credentials as NetworkCredential;
var test4 = test3.UserName;
var test5 = test3.Password;
但这不起作用,因为我从 Proxy 和 Proxy.Credentials 获得的对象为空。 我如何简单地获取这些信息?
Proxy Uri是context bind,也就是说对于不同的原始请求一个proxy配置可以提供不同的proxy Uris。要获得实际的代理 Uri(主机、端口、协议等),您必须提供原始 Uri
Uri proxyUri = yourWebClient.Proxy.GetProxy(new Uri(originalRequestUrl))
或
Uri proxyUri = yourWebClient.Proxy.GetProxy(originalRequestUri)
然后您可以使用 proxyUri 变量的属性,如主机、端口等。
注意:如果您返回原始 Uri,则意味着:没有有效的代理。
如果提供原始请求 Uri 对您来说是个问题,和您确定所有 Uris 的代理都是相同的,那么 ypi cam 只需提供一个虚拟对象(但是有效的)uri(虽然这是一个丑陋的解决方案)如:
Uri proxyUri = yourWebClient.Proxy.GetProxy(new Uri("http://www.google.com"))
显然这不会导致 www.google.com 的流量,只是获取代理配置。
关于凭证同样的故事:
NetworkCredential credential = yourWebClient.Proxy.Credentials.GetCredential(...)
通过凭据变量,您可以获得域、用户名和密码* 属性。
(*仅作记录:不推荐使用登录密码)