1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下:

1             //设置代理

2         WebProxy WP = new WebProxy("41.76.44.76", 3128);

3             ICredentials jxCredt = new NetworkCredential("proxy_username", "proxy_password");

4             WP.Credentials = jxCredt;

5

6             HttpWebRequest webreq = HttpWebRequest.Create(uri);

7             webreq.Proxy = WP;//将代理赋值给HttpWebRequest的Proxy属性

2.但是程序中的每一个HttpWebRequest都需要如此设置,是否存在更简便的方法,例如在某个地方设置了代理,则整个程序的所有请求都使用代理呢。

答案是:有这样的方法。

===================================

不过在此之前先来理解一下 C#的WebRequest类(即HtteWebRequest的父类)在发送前的一些处理:

新创建一个WebRequest实例时(通过Create方法),会自动初始化其Proxy属性,

而它还有一个DefaultWebProxy属性,当用户没有手动设置Proxy属性时,

则WebRequest会使用DefaultWebProxy作为其Proxy;

而DefaultWebProxy是读取项目的app.config文件来进行初始化;

当没有app.config文件,或者没有在app.config中配置Proxy时,

DefaultWebProxy就会去读取Internet Explorer (IE)的代理设置

============================================

提示:

怎么查看当前的请求Rquest是否使用了代理?

3.所以设置全局代理的方式有以下几种:

第一种:程序不做任何处理,仅设置IE的代理;

第二种:在程序的app.config文件进行相关的配置,官方文档,如:

1 <?xml version="1.0" encoding="utf-8"?>

2 <configuration>

3   <system.net>

4     <defaultProxy>

5       <proxy

6         proxyaddress="http://192.168.1.10:3128"

7       />

8     </defaultProxy>

9   </system.net>

10 </configuration>

使用app.config设置代理时,如果想在运行时修改代理,则需要编辑app.config文件,

可以参考:C#读写config配置文件

 第三种:在代码中为DefaultWebProxy重新赋值,如下:

1 WebProxy WP = new WebProxy("41.76.44.76", 3128);

2 ICredentials jxCredt = new NetworkCredential("proxy_username", "proxy_password");//如果有用户名和密码需要设置

3 WP.Credentials = jxCredt;

4

5 WebRequest.DefaultWebProxy = WP;

4.总结:

第一种直接在IE上设置的,更多适合平时测试,因为让用户去作这种设置很不理智;

第二种和第三种都相对简单,只要设置好,整个程序的所有WebRequest都会使用代理,但第二种还需要对app.config文件进行编辑,所以非硬性要求,建议使用第三种,设置DefaultWebProxy的方式;

假如不想使用代理,则将DefaultWebProxy设为null,这样即使IE或者app.config设置了代理也不会影响。

代理的优先顺序:手动设置WebRequest.Proxy属性 > DefaultWebProxy > app.config > IE的代理设置;

C#程序中设置全局代理(Global Proxy)的更多相关文章

  1. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  2. [Z] C#程序中设置全局代理(Global Proxy)

    https://www.cnblogs.com/Javi/p/7274268.html 1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下: 1        ...

  3. 在.NET Core程序中设置全局异常处理

    以前我们想设置全局异常处理只需要这样的代码: AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledExc ...

  4. Linux设置全局代理与yum代理

    设置全局代理,方法如下: 修改 /etc/profile 文件,添加下面内容: http_proxy=http://username:password@yourproxy:8080/ ftp_prox ...

  5. Qt应用程序中设置字体

    Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ...

  6. ZT Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    Android布局]在程序中设置android:gravity 和 android:layout_Gravity属性 分类: [Android基础] 2011-04-19 16:06 54739人阅读 ...

  7. Ubuntu「一键」设置全局代理

    Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...

  8. Java中的动态代理以及Proxy类的偷瞄

    动态代理机制 所谓动态代理,即通过代理类Proxy的代理,接口和实现类之间可以不直接发生联系,而可以在运行期(Runtime)实现动态关联. Java动态代理类位于Java.lang.reflect包 ...

  9. redsocks 设置全局代理

    分享一下我的经验, http://lilydjwg.is-programmer.com/2014/2/7/linux-really-global-http-proxy.42701.html 1. 优点 ...

随机推荐

  1. OGC标准服务 WMS WCS WFS WPS

    网络覆盖服务 (WCS) 网络要素服务 (WFS) 网络地图服务 (WMS) 网络地图切片服务 (WMTS) 网络处理服务 (WPS) 1.Web 地图服务(WMS)能够根据用户的请求返回相应的地图( ...

  2. IOException: Sharing violation on path *****

    Unity代码中删除文件或者文件夹时,可能会报这个错.翻译成白话文就是:你在其它地方打开了这个文件/文件夹   把打开的地方关了就是了.

  3. 使用Python的http.server实现一个简易的Web Api对外提供HanLP拼音转换服务

    由于采集省市区镇数据需要对地名进行拼音转换,由于第三方高准确度接口对IP进行了限制,处理大量数据变得异常缓慢. 使用了一个折中的办法,省市区 3级(3千+)用高准确度接口(几乎没有拼错的地名),镇级( ...

  4. RuntimeError: Python is not installed as a framework.

    RuntimeError: Python is not installed as a framework. 文章转载:https://www.cnblogs.com/harelion/p/563776 ...

  5. ORM 多表操作查询及增删改查

    ------------------------------------------只有对前途乐观的人,才能不怕黑暗,才能有力量去创造光明.乐观不是目的,而是人生旅途中的一种态度. 多表操作 创建模型 ...

  6. 第四次oo博客

    论述测试与正确性论证的效果差异 单元测试利用测试者构造的测试用例来检查类或方法的正确性,一般来说所需要测试的用例是无穷多的,通过人为构造代表性的测试用例来尽量测试所有代码.测试的优点在于不易出错,只要 ...

  7. 【M2】软件工程终期总结报告——前端设计总结

    PhylabWeb——前端设计感想 简介 本文的内容是关于我参与的软件工程项目——“Phylab-Web物理实验中心网站”的前端设计个人总结,来自团队:软剑攻城队 网站地址为:http://buaap ...

  8. Windows之PowerShell使用命令

    Windows之PowerShell使用命令 切换 命令格式: cd [option] 切换到上一级目录 cd ../ 或者 cd .. 不同磁盘之间切换 盘符: 清屏 清空当前窗口的内容 cls 查 ...

  9. 03-Linux的shell命令 .doc

    快捷键 基本操作和命令 Cd转换文件夹 以/开头的是绝对路径 没有/相对路径 ../代表上一级目录 Tab补充 Ctrl+R 查找历史输入过的命令 箭头上也代表能够查询以往输入的命令 Ctrl+C 终 ...

  10. CodeIgniter框架通过URL向控制器传递参数

    通过URL传递参数的方法是GET,在CodeIgnter框架中,通过URL有两种方式向控制器传递参数: 一种是键值对的形式. 一种是类似于文件路径的形式,这个时候,不是以键值对的形式了,我们只传递值. ...