2016-04-22 12 views
1

Warum ist es nicht genug, eine Proxy-Eigenschaft zu haben?Warum hat HttpClientHandler sowohl Proxy- als auch UseProxy-Eigenschaften?

Wenn es null ist, dann verwenden Sie nicht den Proxy, wenn es non-null ist, dann verwenden Sie den bereitgestellten Proxy.

+0

Ich kann mir vorstellen, ein Grund könnte so sein, Sie könnten einen Proxy definiert haben ... aber schalten Sie es aktiviert/deaktiviert je nach Bedarf. Siehe auch [IWebProxy] (https://msdn.microsoft.com/en-us/library/system.net.iwebproxy%28v=vs.110%29.aspx): "Die GetProxy-Methode kann verwendet werden, um die Verwendung von Proxy zu steuern basierend auf der Ziel-URL ... ". Nochmals: Sie können einen Proxy definieren und haben immer noch granulare Laufzeitkontrolle darüber, wie - oder ob - Sie es verwenden möchten. – paulsm4

+0

@alex, Wie steht es mit dem Standard-Proxy von IE? – Eser

Antwort

1

Proxy Eigenschaft können Sie einen Proxy angeben, der von HttpClientHandler verwendet werden soll.

UseProxy Eigenschaft erlaubt gibt an, ob der Handler einen Proxy für Anforderungen verwendet.

Wenn Sie jedoch den Standardproxy verwenden möchten, müssen Sie ihn nicht in der Eigenschaft Proxy definieren, ist genug mit set UseProxy.

Wenn UseProxytrue und Proxy ist null, die WebRequest.DefaultWebProxy verwendet wird.

DefaultWebProxy Eigenschaft liest Proxy-Einstellungen aus der Konfigurationsdatei. Wenn kein Benutzer vorhanden ist, werden die Proxyeinstellungen des aktuellen Benutzers Internet Explorer (IE) verwendet.

+0

Ich frage mich, warum Proxy hat keinen Wert von WebRequest.DefaultWebProxy standardmäßig, so dass Sie entweder auf Null setzen oder durch andere Proxy ersetzen können – alex

+0

@alex: wahrscheinlich eine Frage des Designs, Wenn ich nicht verwenden möchte Proxy, habe mehr Sinn nichts tun, anstatt Proxy auf null setzen und ist wahrscheinlich einfacher Proxy einmal einstellen und aktivieren/deaktivieren Sie es mit UseProxy als den Verweis auf den Proxy zu halten, um es in der Eigenschaft zu setzen. –

Verwandte Themen