Попытка сделать вызов API для получения токена - PullRequest
0 голосов
/ 24 мая 2019

Ниже приведен код, который я пытался сделать вызовом API для токена.Похоже, что x-www-form-urlencoded вызывает 401 несанкционированный при преобразовании в тело. Что является стандартным процессом для преобразования тела в x-www-form-urlencoded.

Add-Type @"
    using System;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    public class ServerCertificateValidationCallback
    {
        public static void Ignore()
        {
            ServicePointManager.ServerCertificateValidationCallback += 
                delegate
                (
                    Object obj, 
                    X509Certificate certificate, 
                    X509Chain chain, 
                    SslPolicyErrors errors
                )
                {
                    return true;
                };
        }
    }
"@
[ServerCertificateValidationCallback]::Ignore();

$header = @{
 "content-Type"="application/x-www-form-urlencoded"
 "accept"="application/json"
}

$APICURL= "myurl" 

$json = @{ "grant_type"="access"
         "client_id" = "xyz"
         "client_secret" = "abc"
        "scope" = "one"}


         $body = $json | ConvertTo-Json
          $response =Invoke-Restmethod -Uri $APICURL -Method Post -Headers $header -Body $body

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

Изменить тип содержимого на application / json.

0 голосов
/ 24 мая 2019

Вы установили Content-Type на x-www-form-urlencoded, но вы предоставляете JSON.JSON довольно распространен как тип тела, поэтому сначала я попытаюсь обновить тип контента на application / json , если вы не уверены, что спецификация требует x-www-form-urlencoded.

Если последнее, вы можете проверить этот вопрос: Как отправить запрос с помощью Invoke-WebRequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...