Мой запрос не работает в HTTPClient и RestSharp, но хорошо работает в Почтальоне - PullRequest
0 голосов
/ 26 февраля 2019

Я нахожусь на Xamarin и хотел бы выполнить HTML-запрос для сбора токена с сервера, которым я управляю.Я могу успешно выполнить следующий запрос на PostMan.Postman request Но как только я пытаюсь закодировать его, это не работает.Я пробовал два разных способа.Во-первых, используя HTTPClient следующим образом:

        HttpClient client = new HttpClient();
        string url = AppConfiguration.CloudServer_URI + "/token";
        client.BaseAddress = new Uri(url);
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // define the expected return format

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "/token");
        request.Content = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("grant_type", "password"),
            new KeyValuePair<string, string>("username", "admin@example.com"),
            new KeyValuePair<string, string>("password", "Admin@123465")
        });

        var response = await client.SendAsync(request);

Это дает мне хороший ответ, но с 400 - Плохой запрос.Я не могу найти в HTTPResponse, где я могу получить подробности в теле ответа.Но я настоятельно приветствую это «ошибка»: «unsupported_grant_type».

Затем я попробовал другой способ с RestSharp и получил следующую реализацию:

        string URL = AppConfiguration.CloudServer_URI + "/token";
        var client = new RestClient(URL);
        var request = new RestRequest(Method.GET);
        request.AddHeader("content-type", "application/x-www-form-urlencoded");
        request.AddParameter("grant_type", "password", ParameterType.RequestBody);
        request.AddParameter("username", "admin@example.com", ParameterType.RequestBody);
        request.AddParameter("password", "Admin@123465", ParameterType.RequestBody);

        IRestResponse response = client.Execute(request);

Но опять результат тот же- ошибка 400, неверный запрос.И здесь я вижу тело ответа "error": "unsupported_grant_type".

У меня такое чувство, что я упускаю что-то очевидное, но я не вижу, что.

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