什么是WebRequest.DefaultWebProxy和WebRequest.GetSystem

2019-08-16 23:16发布

我想知道的主要区别是什么之间DefaultWebProxyGetSystemWebProxy() 这里是MSDN上的一些描述,但我还是觉得我需要更多的细节,有一个更好的了解。

此外,假设我有我的C#WinForm应用程序的代理配置以下选项

  1. 自动检测代理设置
  2. 使用系统默认设置
  3. 无代理

然后该方法进行到哪个选项? 那么,是否可以说, Auto-detect proxy有点等于Use system default设置?

Answer 1:

按照MSDN文章为WebRequest.DefaultWebProxy ,此属性将提供指定代理信息app.config文件。 它看起来像.NET框架V3.5 MSDN文章缺少这种特定的细节。

至于WebRequest.GetSystemWebProxy()得好, MSDN文章为它指出这个方法将提供全系统的配置的代理(控制面板> Internet选项)。


这就是我建议你实现列出的三个选项:

  1. 自动检测代理设置
    • 实现自己的代理发现的逻辑; 要么
    • 更改系统设置,以符合您的应用程序的设置,并使用WebRequest.GetSystemWebProxy() 我不推荐这种方法 ); 要么
    • 最好不包括此选项,让用户使用相应的系统范围的设置以及“使用系统默认设置”选项;
  2. 使用系统默认设置
    • 使用WebRequest.GetSystemWebProxy() ;
  3. 无代理
    • 确保取消设置WebRequest.DefaultWebProxyWebRequest.Proxy性能;

编辑:如果没有代理在app.config中配置WebRequest.DefaultWebRequest几乎相同WebRequest.GetSystemWebProxy()至少在.NET 4.5)。 不同的是, WebRequest.GetSystemWebProxy()将运行PAC脚本(如果有的话)代理定义。
由于Gabrielius和23W下面的评论。



文章来源: What's the difference between WebRequest.DefaultWebProxy and WebRequest.GetSystemWebProxy()?