c# - 以编程方式更改 defaultproxy 而不是使用 app.config

标签 c# wpf app-config desktop-application defaultproxy

我正在 WPF 中创建桌面应用程序。此应用程序使用 webclient 实例与 API 通信以从中收集数据。

在此桌面应用程序中,我想创建一个复选框,允许用户忽略 Internet 选项代理或使用默认的自动检测选项。

此时我将此 defaultproxy 设置添加到我的 app.config 以阻止我的应用程序尝试通过代理进行通信,而是忽略它。

<system.net>
    <defaultProxy enabled="false" useDefaultCredentials="false">
      <proxy/>
      <bypasslist/>
      <module/>
    </defaultProxy>
</system.net>

当我的 app.config 中没有此代码时,我的应用程序将尝试使用默认的 Internet 选项代理。

因此,为了通过设置菜单中的复选框切换此设置,我必须以编程方式更改这些设置。

我知道当我将默认代理设置为新的 web 代理时,应用程序将忽略 internetoptions 代理。

WebRequest.DefaultWebProxy = new WebProxy();

但我一辈子都想不出如何将其设置回自动检测代理使用情况,就像我在 app.config 中插入上述默认代理设置之前一样。

我正在使用有故障的代理进行测试。这意味着如果我发送一个 api 请求,则找不到代理并且我收到一个 webexception。当我使用 app.config 代码忽略代理时,请求使用我的正常互联网连接,并返回 API 数据。

如果有人能告诉我如何以编程方式设置我的应用程序以忽略代理,或者最重要的是使用默认的自动检测设置,那将真的对我有帮助。

最佳答案

如果想把代理设置回默认代理,可以使用这个静态方法

WebRequest.GetSystemWebProxy();

看这里https://msdn.microsoft.com/de-de/library/system.net.webrequest.getsystemwebproxy(v=vs.110).aspx

关于c# - 以编程方式更改 defaultproxy 而不是使用 app.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51177104/

相关文章:

c# - 从 lambda 表达式方法参数中获取结束值

c# - 从符号链接(symbolic link) C# 获取真实路径

c# - 将表达式<Func<T1>> 转换为表达式<Func<T1, T2>>

c# - BitmapSource.Create 错误 - 缓冲区大小不够大

c# - 将跟踪监听器附加到 app.config 中的现有跟踪源

c# - 如何从谷歌可视化中隐藏一列

c# - 解析器错误消息 : Could not load type : the file of the master page

wpf - ComboBox和 Entity Framework ,如何获取ID? (WPF-MVVM)

c# - 将用户设置存储到应用程序文件夹中