C# неподдерживаемый тип предоставления при вызове веб-API

Я пытаюсь выполнить Сообщение к своему WebAPI от c# WPF настольное приложение.

Независимо от того, что я делаю, я добираюсь

{"ошибка": "unsupported_grant_type"}

Это - то, что я попробовал (и я попробовал все, что я мог найти):

Также веб-API dev, в настоящее время активный для тестирования: http://studiodev.biz/

основа http объект клиента:

var client = new HttpClient()
client.BaseAddress = new Uri("http://studiodev.biz/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*"));

со следующим отправляют методы:

var response = await client.PostAsJsonAsync("token", "{'grant_type'='password'&'username'='username'&'password'='password'");
var response = await client.PostAsJsonAsync("token", "grant_type=password&username=username&password=password");

После этого отказавший, я сделал некоторый поиск с помощью Google и попробовал:

LoginModel data = new LoginModel(username, password);
string json = JsonConvert.SerializeObject(data);
await client.PostAsync("token", new JsonContent(json));

тот же результат, таким образом, я попробовал:

req.Content = new StringContent(json, Encoding.UTF8, "application/x-www-form-urlencoded");
await client.SendAsync(req).ContinueWith(respTask =>
{
 Application.Current.Dispatcher.Invoke(new Action(() => { label.Content = respTask.Result.ToString(); }));
});

Примечание: Я могу выполнить успешный вызов с Chrome.

Обновите результат скрипача

enter image description here

Мог кто-то помогать мне выполнить успешный вызов к вышеупомянутому веб-API... Сообщите мне, могу ли я помочь разъясниться.Спасибо!!

60
задан 25 March 2015 в 17:19

1 ответ

Имел те же проблемы, но только разрешил мой по защищенному HTTP для маркерного URL. Посмотрите образец httpclient код. Обычный HTTP просто прекращает работать после обслуживания сервера

var apiUrl = "https://appdomain.com/token"
var client = new HttpClient();    
client.Timeout = new TimeSpan(1, 0, 0);
            var loginData = new Dictionary<string, string>
                {
                    {"UserName", model.UserName},
                    {"Password", model.Password},
                    {"grant_type", "password"}
                };
            var content = new FormUrlEncodedContent(loginData);
            var response = client.PostAsync(apiUrl, content).Result;
0
ответ дан 1 November 2019 в 09:36

Другие вопросы по тегам:

Похожие вопросы: