ant*_*009 23 c# proxy networking
C#2008 SP1
我正在使用代码来检测是否已在"Internet选项"下设置代理.如果有代理,那么我将在我的webclient中设置它.
所以我只是检查代理的地址是否存在.如果没有,那么在webclient中没有设置代理.
这是正确的方法:
非常感谢任何建议,
WebProxy proxy = WebProxy.GetDefaultProxy();
if (proxy.Address.ToString() != string.Empty)
{
Console.WriteLine("Proxy URL: " + proxy.Address.ToString());
wc.Proxy = proxy;
}
Run Code Online (Sandbox Code Playgroud)
======代码编辑======
[DllImport("wininet.dll", CharSet = CharSet.Auto)]
private extern static bool InternetGetConnectedState(ref InternetConnectionState_e lpdwFlags, int dwReserved);
[Flags]
enum InternetConnectionState_e : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}
// Return true or false if connecting through a proxy server
public bool connectingThroughProxy()
{
InternetConnectionState_e flags = 0;
InternetGetConnectedState(ref flags, 0);
bool hasProxy = false;
if ((flags & InternetConnectionState_e.INTERNET_CONNECTION_PROXY) != 0)
{
hasProxy = true;
}
else
{
hasProxy = false;
}
return hasProxy;
}
Run Code Online (Sandbox Code Playgroud)
小智 27
似乎WebRequest.DefaultWebProxy是WebProxy.GetDefaultProxy 的官方替代品.
只需稍加修改,您就可以将其放入原始代码中.就像是:
WebProxy proxy = (WebProxy) WebRequest.DefaultWebProxy;
if (proxy.Address.AbsoluteUri != string.Empty)
{
Console.WriteLine("Proxy URL: " + proxy.Address.AbsoluteUri);
wc.Proxy = proxy;
}
Run Code Online (Sandbox Code Playgroud)
WebClient
等使用WinHTTP设置(不是IE设置),所以最简单的方法是配置WinHTTP!在XP等上你可以使用:
proxycfg -u
Run Code Online (Sandbox Code Playgroud)
将当前IE设置导入WinHTTP存储.之后,WebClient
等应该能够使用相同的设置而不会出现问题.在Vista和Windows 7上,现在可以在以下位置找到:
netsh winhttp import proxy ie
Run Code Online (Sandbox Code Playgroud)
您需要以管理员身份运行它.
这对我有用
var proxy = WebRequest.GetSystemWebProxy();
Uri testUrl = new Uri("http://proxy.example.com");
var proxyUrl = proxy.GetProxy(testUrl);
if (proxyUrl != testUrl)
//Use your proxy here
else
//We are not using a proxy
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46728 次 |
最近记录: |