Comment puis-je faire Invoke-RestMethod utiliser la valeur par défaut de proxy web?
Le suivant fonctionne très bien sur ma machine qui n'utilise pas de proxy web.
return Invoke-RestMethod
-Uri $server$url
-ContentType $contentType
-Headers $headers
-Method $method
-UseDefaultCredentials
Remarque: le $server$url
est un https adresse, quelque chose comme https://somewhere.example.com/api/data
Maintenant, je vais essayer de l'obtenir pour fonctionner dans un environnement d'entreprise, mais j'obtiens une erreur 401.
Je pense que c'est parce qu'il est un proxy d'entreprise qui est défini avec un proxy.fichier pac. J'ai confirmé que je peux aller à la $server$url
URI à partir d'Internet Explorer. Que dois-je faire pour obtenir le Invoke-RestMethod
de commande à l'aide des mêmes paramètres?
J'ai essayé d'ajouter le -proxy
paramètre
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
return Invoke-RestMethod
-Uri $server$url
-ContentType $contentType
-Headers $headers
-Method $method
-UseDefaultCredentials
-Proxy $proxy
-ProxyUseDefaultCredentials
mais le paramètre de Proxy s'attend à une URI pas un IWebProxy
objet.
OriginalL'auteur shamp00 | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Edit: une Fois l'adresse incorrecte est fourni, la commande ne fonctionne plus et retourne l'adresse indiquée au lieu de l'adresse proxy..
Ne pas utiliser ce:
À l'aide de l'extrait de code dans cette, je suis en mesure de récupérer le proxy de l'uri de PowerShell en tant que tel:
Utiliser ce lieu:
Il renvoie toujours à la condition d'URI (ou lance) lorsque l'uri n'est pas valide, mais une fois uri correct est fourni est commence à travailler de nouveau.
GetSystemWebProxy().GetProxy()
retourne Le ServicePointManager ne prend pas en charge les proxys avec le https programme.OriginalL'auteur nohwnd
Accepté la réponse qui m'a. Voici la version complète
OriginalL'auteur shamp00