Frage Wie authentifizieren Sie sich bei Verwendung der HttpClient-Klasse bei einem Proxy?


Ich habe eine Konsolen-App auf .NET 4, die die verwendet HttpClient Bibliothek (über NuGet erhalten), um Daten von einer öffentlichen API über das Internet abzurufen. Die Konsolen-App befindet sich hinter einem Proxy. Der Windows-Computer, auf dem es sich befindet, hat die richtigen Proxy-Einstellungen in Internet Explorer. Wenn die Konsolenanwendung versucht, auf die Außenwelt zuzugreifen, erhält sie den Status 407 - "Proxy-Authentifizierung erforderlich".

Ich habe noch keinen spezifischen Code geschrieben, um mit einem Proxy umzugehen. Ich nehme vom 407 Fehler an, dass die Anwendung zu dem Proxy kein Problem leitet, aber der Proxy die Anfrage nicht authentifiziert.

Meine Frage ist, ist es möglich, den HttpClient die Anmeldeinformationen des angemeldeten Benutzers zu verwenden, um den Proxy zu authentifizieren? Wenn das so ist, wie?

var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);

16
2018-03-22 18:04


Ursprung


Antworten:


Ich habe es geschafft, mein Problem sehr einfach durch Proxy-Konfiguration in app.config zu lösen.

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy usesystemdefault="True" />
    </defaultProxy>
</system.net>

http://msdn.microsoft.com/en-us/library/dkwyc043.aspx


29
2018-03-23 12:23



Wenn Sie dasselbe programmatisch machen möchten, könnten Sie Folgendes verwenden:

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

(Diese Objekte stammen aus dem Namespace `System.Net ').

Weitere Informationen von MSDN: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx


14
2017-08-07 02:54