ich Powershell ziemlich neu bin und ich versuche, REST Methoden für eine Anwendung zu verwenden, die OAuth2.0 Authentifizierung erfordern.Powershell Invoke-RestMethod schlägt fehl
Ich habe folgendes mit diesen https://msdn.microsoft.com/en-us/library/hh454950.aspx als Referenz geschrieben:
$ClientID = 'david_web'
$client_Secret = 'Secret_123'
$Uri = "https://target_server/api/token"
$Body = "grant_type=password=$ClientID&username=$client_Secret"
$admAuth=Invoke-RestMethod -Uri $Uri -Body $Body -Method Post
$HeaderValue = "Bearer " + $admauth
$uri = "https://target_server/api/v1.0/discovery";
$result = Invoke-RestMethod -Uri $uri -Headers @{Authorization = $HeaderValue}
$result.string.'#text'
Als ich das laufen erhalte ich:
Invoke-RestMethod: Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler ist aufgetreten auf einem senden.
Wenn ich versuche, das folgende von Linux:
curl -k -i -X POST -d 'grant_type=password&username=david_web&password=Secret_123' https://target_server/api/token
Es funktioniert, aber ich muss die Option -k umfassen. Wie mache ich dasselbe bei PowerShell?
Edit:
Laufen gerade dieses:
$ClientID = 'david_web'
$client_Secret = 'Secret_123'
$Uri = "https://target_server/api/token"
$Body = 'grant_type=password&username=$ClientID&password=$client_Secret'
$admAuth = Invoke-RestMethod -Method Post -Uri $Uri -Body $Body
Returns:
[ERROR] Invokenvoke-RestMethod: Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler ist [ERROR] trat am ein senden. [ERROR] Bei C: \ data \ Visual Studio 2015 \ Projects \ PSDiscovery \ REST \ GetToken.ps1: 34 [ERROR] char: 12 [ERROR] + $ admAuth = Invoke-RestMethod -Methode Beitrag -uri $ Uri - Körper $ Körper [ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ [ERROR] + CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest: Htt [ERROR] pWebRequest) [Invoke-RestMethod], WebException [ERROR] + FullyQualifiedErrorId: WebCmdletWebResponseException, Microsoft .PowerShe [ERROR] ll.Commands.InvokeRestMethodCommand
'grant_type = password = $ ClientID & username = $ client_Secret' wird 'grant_type = password = david_web & username = Secret_123', um zu bekommen, was Sie wollen (' grant_type = Kennwort & username = david_web & password = Secret_123') Sie 'grant_type = Passwort & username = $ ClientID & password = $ client_Secret‘ ' –
OK verwenden müssen - ich dies auch versucht haben - bitte oben bearbeiten in der Post sehen. – dross