Folgendes funktioniert auf meinem Computer, der keinen Web-Proxy verwendet.Wie kann ich Invoke-RestMethod den Standard-Web-Proxy verwenden?
return Invoke-RestMethod
-Uri $server$url
-ContentType $contentType
-Headers $headers
-Method $method
-UseDefaultCredentials
Hinweis: Die $server$url
ist ein https Adresse, so etwas wie https://somewhere.example.com/api/data
Jetzt zu arbeiten in Ich versuche, es zu bekommen eine Unternehmensumgebung, aber ich bekomme einen Fehler 401.
Ich denke, das liegt daran, dass es einen Corporate Proxy gibt, der mit einer proxy.pac Datei definiert ist. Ich habe bestätigt, dass ich vom Internet Explorer zum $server$url
URI gelangen kann. Was muss ich tun, damit der Befehl Invoke-RestMethod
mit den gleichen Einstellungen funktioniert?
Ich habe versucht, das Hinzufügen -proxy
Parameter
$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
aber der -Proxy Parameter wird eine URI kein IWebProxy
Objekt erwartet.
Hmm ... in meinem Fall ist die URL eine https-Adresse. Dann 'GetSystemWebProxy(). GetProxy()' gibt zurück _Der ServicePointManager unterstützt keine Proxies mit dem https-Schema_. – shamp00