Cra*_*gTP 102
这可以通过编程,代码或声明性地在web.config或app.config中轻松实现.
您可以以编程方式创建代理,如下所示:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
您基本上是将WebProxy对象分配给request对象的proxy属性.request然后,这将使用proxy您定义的.
要以声明方式实现相同的目的,您可以执行以下操作:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
在您的web.config或app.config中.这将设置所有http请求将使用的默认代理.根据您需要实现的内容,您可能需要也可能不需要defaultProxy/proxy元素的某些附加属性,因此请参阅相关文档.
Ode*_*ded 22
如果您使用WebClient,它有一个您可以使用的代理属性.
正如其他人所提到的,有几种方法可以自动执行代理设置检测/使用
Web.Config中:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="true" bypassonlocal="true" />
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
使用本文中描述的WebProxy类.
您也可以直接配置代理设置(配置或代码),然后您的应用将使用这些设置.
Web.Config中:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[proxy address]:[proxy port]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("url");
WebProxy myproxy = new WebProxy("[proxy address]:[proxy port]", false);
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
如果您希望应用程序使用系统默认代理,请将其添加到Application.exe.config(其中application.exe是您的应用程序的名称):
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="true" bypassonlocal="true" />
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅System.Net上的MSDN文章
小智 6
试试这个代码.在发出任何http请求之前调用它.代码将使用您的Internet Explorer设置中的代理 - 但有一点,我使用的proxy.Credentials = ....是因为我的代理服务器是经过NTLM身份验证的Internet Acceleration Server.给它一个高手.
static void setProxy()
{
WebProxy proxy = (WebProxy)WebProxy.GetDefaultProxy();
if(proxy.Address != null)
{
proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
WebRequest.DefaultWebProxy = new System.Net.WebProxy(proxy.Address, proxy.BypassProxyOnLocal, proxy.BypassList, proxy.Credentials);
}
}
Run Code Online (Sandbox Code Playgroud)
这个单线程对我有用:
CredentialCache.DefaultNetWorkCredentials
WebRequest.DefaultWebProxy.Credentials 是Internet Explorer中设置的代理设置.
CredentialCache.DefaultNetWorkCredentials 用于应用程序中的所有Internet连接.
| 归档时间: |
|
| 查看次数: |
169535 次 |
| 最近记录: |