gpt4 book ai didi

c# - WebRequest.DefaultWebProxy 和 WebRequest.GetSystemWebProxy() 有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 04:44:18 27 4
gpt4 key购买 nike

我想知道 DefaultWebProxyGetSystemWebProxy() 之间的主要区别是什么。 MSDN 上有一些描述,但我仍然觉得我需要更多细节才能更好地理解。

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

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

那么哪个方法去哪个选项呢? Auto-detect proxy 有点等同于Use system default 设置是否正确?

最佳答案

根据 MSDN article对于 WebRequest.DefaultWebProxy,此属性将提供 app.config 文件中指定的代理信息。它看起来像 .NET Framework v3.5 MSDN Article缺少此特定细节。

WebRequest.GetSystemWebProxy() 而言,MSDN article for it指出此方法将提供系统范围内配置的代理(控制面板 > Internet 选项)。


这就是我建议您实现概述的三个选项的方式:

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

编辑:如果app.config中没有配置代理,WebRequest.DefaultWebRequest几乎WebRequest.GetSystemWebProxy()(至少对于 .NET 4.5)。不同之处在于 WebRequest.GetSystemWebProxy() 将运行 PAC 脚本(如果有)以进行代理定义。
感谢Gabrielius23W对于下面的评论。

关于c# - WebRequest.DefaultWebProxy 和 WebRequest.GetSystemWebProxy() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com