oauth 2.0 в c#, получая 400 ошибок, не знаю почему - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь получить токен доступа, вызывая API с кодом авторизации и получая ошибку 400.

Я прочитал много веб-сайтов и не вижу, что с этим не так. Спасибо. Я оставил в комментариях, так как это другие способы, которые я пробовал. Цени любой быстрый совет

HttpWebRequest request = WebRequest.Create("https://identity.xero.com/connect/token") as HttpWebRequest;

request.Headers.Add("Authorization", "Basic " + b64_id_secret);

//string data = "{ grant_type : refresh_token, refresh_token : " + l_auth_code+ "}";
//string data = "{ 'grant_type' : 'authorization_code', 'code' : '" + l_auth_code + "', 'redirect_uri' : '" + C_XERO_REDIRECT_URL + "'}";

request.ContentType = "application/json";
request.Method = "POST";
//request.ContentType = "application/json";
//request.ContentLength = postBytes.Length;
//request.Accept = "application/json";

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
                        string json = "{\"grant_type\":\"authorization_code\"," +
                                      "\"code\":\"" + l_auth_code + "\","+
                                      "\"redirect_uri\":\"" + C_XERO_REDIRECT_URL + "\"}";
                        streamWriter.Write(json);
}
// crashes here
var httpResponse = (HttpWebResponse)request.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
}
...