1

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

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

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

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

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

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

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

WebRequest.DefaultWebProxy = new WebProxy();

但我无法弄清楚如何将其设置回自动检测代理使用,就像在 app.config 中插入上面的 defaultproxy 设置之前一样。

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

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

4

1 回答 1

3

如果要将代理设置回默认代理,可以使用此静态方法

WebRequest.GetSystemWebProxy();

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

于 2018-07-04T15:47:32.337 回答