C#程序中设置全局代理(Global Proxy)
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属性
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 <proxy6 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的代理设置;
转原文地址:https://www.cnblogs.com/tommy-huang/p/5832998.html
转载于:https://www.cnblogs.com/doudingliu/p/10218497.html
C#程序中设置全局代理(Global Proxy)相关推荐
- windbg 用代理_[Z] C#程序中设置全局代理(Global Proxy)
https://www.cnblogs.com/Javi/p/7274268.html 1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下: 1 ...
- python全局代理_Python程序中设置HTTP代理
0x00 前言 大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用.HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,典型的有Ngi ...
- 在.NET Core程序中设置全局异常处理
以前我们想设置全局异常处理只需要这样的代码: 1 AppDomain currentDomain = AppDomain.CurrentDomain;2 currentDomain.Unhandled ...
- python设置http代理_python中设置HTTP代理的方法
什么是HTTP代理 HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别.HTTP代理收到请求后,根据Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建 ...
- python socks代理_Python中使用socks5设置全局代理的方法示例
0x01介绍 PySocks使您可以通过SOCKS和HTTP代理服务器发送流量.它是SocksiPy的现代分支,具有错误修复和其他功能. 0x02 安装 λ pip3 install Pysocks ...
- python 设置全局代理_Python中使用socks5设置全局代理的方法示例
0x01介绍 PySocks使您可以通过SOCKS和HTTP代理服务器发送流量.它是SocksiPy的现代分支,具有错误修复和其他功能. 0x02 安装 λ pip3 install Pysocks ...
- .NetCore HttpClient Proxy 设置全局代理
.NetCore HttpClient Proxy 设置全局代理 环境 .net6.0,使用的是 HttpClient 在Program.cs里面 service.AddHttpClient<H ...
- 在代码中,给java程序自身设置网络代理来爬虫相关站点或使用相关api。
在开发中,我们可能会使用到某些api. 但是这些api(如谷歌云)因为一些因素,我们本机是无法直接访问的. 最要命的是,我们开发中必然要用到这些api,而尽管本机开启了代理,但是java程序本身却不走 ...
- Xubuntu22.04设置全局代理(一百五十六)
1.前言 在Ubuntu系统中,如果需要设置全局代理,按照以下步骤设置即可: ---->设置 ----网络 ---->代理 但是Xubuntu和Ubuntu系统是有差异的,按照同样的路径却 ...
最新文章
- 如何将int类型数据转换成byte数组
- jvm 的垃圾回收算法
- 一般屏幕的3D模型是公开的吗?
- PHP服务器脚本实例,Shell脚本实现的一个简易Web服务器例子分享_linux shell
- web登录时候加入过滤器的用法
- ArrayList 一个面试题
- Java学习视频教程 云析学院Java高级架构实战系列
- 利用爬虫编译翻译器 (包含防御反爬虫)
- 无法听到计算机发出的声音怎么办,为什么视频对方听不到我说话_电脑视频对方听不到声音的解决方法...
- 美国诚实签经验——医生的预约单和赴美生子的费用明细表
- 第一次登陆阿里云ECS云服务器及其配置
- [数据挖掘] 朴素贝叶斯 以及西瓜集特征工程
- c++等边三角形(DFS实例)
- c语言经典笔试100题,100条经典C语言笔试题目(全).doc
- 居安思危——“非常时期”的城市生存
- 3dvary灯光材质为什么不亮_3dmax灯光教程灯光打出来太假?不真实?杂点?曝光?原因都在这儿呢...
- 通过XtraBackup进行数据库表备份和表空间传输实例
- Mac 下修改mysql密码
- 东邪西毒 - 台词全本
- 我输入,你生成代码,手写代码生成