Ceci est facilement réalisé soit par programme, dans votre code, soit de manière déclarative dans web.config ou app.config.
Vous pouvez créer un proxy par programme comme ceci:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Vous affectez essentiellement l' WebProxy
objet à la propriété de l' request
objet proxy
. Cela request
utilisera ensuite le proxy
fichier que vous définissez.
Pour réaliser la même chose de manière déclarative, vous pouvez effectuer les opérations suivantes:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
dans votre web.config ou app.config. Cela définit un proxy par défaut que toutes les requêtes http utiliseront. En fonction exactement de ce que vous devez réaliser, vous pouvez ou non avoir besoin de certains des attributs supplémentaires de l' élément defaultProxy / proxy , veuillez donc vous référer à la documentation pour ceux-ci.
BypassProxyOnLocal
propriété sur True (si nécessaire) immédiatement après.Si vous utilisez
WebClient
, il possède une propriété Proxy que vous pouvez utiliser.Comme d'autres l'ont mentionné, il existe plusieurs façons d'automatiser la détection / l'utilisation des paramètres de proxy
Web.Config:
Utilisation de la classe WebProxy comme décrit dans cet article .
Vous pouvez également cofigurer directement les paramètres du proxy (configuration ou code) et votre application les utilisera ensuite.
Web.Config:
Code:
la source
Essayez ce code. Appelez-le avant de faire des requêtes http. Le code utilisera le proxy de vos paramètres Internet Explorer - une chose cependant, j'utilise
proxy.Credentials = ....
parce que mon serveur proxy est un serveur d'accélération Internet authentifié NTLM. Donnez-lui un coup de fouet.la source
WebProxy.GetDefaultProxy
est obsolète depuis Framework 4.5 et cette méthode renvoie null. Mieux vaut réfléchir avant de l'utiliserCredentialCache.DefaultNetworkCredentials
. Si vous avez mis quelque chose dans CredentialCache et que votre proxy nécessite de telles informations d'identification, cela devrait fonctionner. Sinon, cela n'aidera pas.Si vous souhaitez que l'application utilise le proxy par défaut du système, ajoutez-le à votre Application.exe.config (où application.exe est le nom de votre application):
Plus de détails peuvent être trouvés dans l' article MSDN sur System.Net
la source
Ce one-liner fonctionne pour moi:
CredentialCache.DefaultNetWorkCredentials
est les paramètres de proxy définis dans Internet Explorer.WebRequest.DefaultWebProxy.Credentials
est utilisé pour toute la connectivité Internet dans l'application.la source
Le code de Foole a parfaitement fonctionné pour moi, mais dans .NET 4.0, n'oubliez pas de vérifier si Proxy est NULL, ce qui signifie qu'aucun proxy n'est configuré (en dehors de l'environnement de l'entreprise)
Voici donc le code qui a résolu mon problème avec notre proxy d'entreprise
la source
Ce code a fonctionné pour moi:
la source
La détection automatique de proxy est un processus par lequel un serveur proxy Web est identifié par le système et utilisé pour envoyer des demandes au nom du client. Cette fonctionnalité est également connue sous le nom de Web Proxy Auto-Discovery (WPAD). Lorsque la détection automatique de proxy est activée, le système tente de localiser un script de configuration de proxy qui est chargé de renvoyer l'ensemble de proxies pouvant être utilisés pour la demande.
http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx
la source
la source
Je vais utiliser un exemple pour ajouter aux réponses ci-dessus.
J'ai rencontré des problèmes de proxy en essayant d'installer des packages via Web Platform Installer
Cela aussi utilise un fichier de configuration qui est WebPlatformInstaller.exe.config
J'ai essayé les modifications suggérées dans ce forum IIS qui est
et
Aucun de ceux-ci n'a fonctionné.
Ce qui a fonctionné pour moi, c'est ceci -
Le module devait être enregistré auprès de Web Platform Installer pour pouvoir l'utiliser.
la source