【发布时间】:2021-12-01 10:48:04
【问题描述】:
我正在编写一个 .NET (C#) Windows 应用程序。我有一个 HttpClientHandler,我为其设置了一个 WebProxy。
不知道不设置代理,使用机器代理设置好不好?或设置 HttpClient 以在代码中使用 WebProxy。 在这两种情况下,结果都是相同的 - 请求将使用相同的代理。
两者之间有更可靠或“行业接受”的选择吗?
如果机器设置都设置了代理,并且代码也设置了代理,会发生什么?
附加说明 - 这两个选择都是我的选择。我不依赖客户的任何选择。这个问题纯粹是在可靠性方面,因为我发现使用机器设置的 WebProxy 设置时,我的客户经常会失败。
【问题讨论】:
-
不要在代码中设置。您的代码无法知道您的代码可能运行的所有环境的代理是什么,现在和将来。有一天,您的组织将更改其代理详细信息,然后您的所有应用程序都将停止工作! HttpClient 默认支持标准代理配置是有原因的 - 使用它!
-
在这两种情况下,我都使用我可以控制的外部可配置项。我不以任何方式依赖客户。只是在为机器设置代理设置时出现了一些故障。
-
在这种情况下,如果您有特定的代理需求,而默认代理支持无法满足,那么您几乎必须在代码中添加自己的代理。如果您可以摆脱使用默认值,那么不要重新发明轮子。任何一种方法都不应该有任何可靠性问题 - 我想知道您是否应该将这些问题作为一个具体问题提出?