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

时间:2018-07-04 15:35:38

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

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

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

此刻,我将此默认代理设置添加到我的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数据。

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

1 个答案:

答案 0 :(得分:3)

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

WebRequest.GetSystemWebProxy();

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