Я начинаю, и я работаю с одним приложением Xamarin. Я пытаюсь подключить свое приложение к одному серверу Https для получения Token, и когда я проверяю соединение с Postman, все в порядке. Но мое приложение, это другая история ..Соединение Xamarin Https с POST, asp.net-web-api-2, «Ошибка аутентификации или дешифрования»
Веб-сервис: aps.net-веб-апи-2
И это мое подключение код в Xamarin:
using System.Net.Http;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.getButton);
button.Click += async (sender, e) =>
{
try
{
string url = "https://urlexample/foo/bar/Token";
string values = await RequestWeb(url);
}
catch (Exception ex)
{
Log.Info("error with click", ex.ToString());
}
};
}
private async Task<string> RequestHttps(string url)
{
string responseString = string.Empty;
using (HttpClient client = new HttpClient())
{
Dictionary<string,string> values = new Dictionary<string, string>
{
{ "grant_type", "password" },
{ "username", "User1" },
{ "password", "123456" }
};
FormUrlEncodedContent content = new FormUrlEncodedContent(values);
HttpResponseMessage response = await client.PostAsync(url, content);
responseString = await response.Content.ReadAsStringAsync();
}
return responseString;
}
Когда Я проверить с моим кодом, я восстанавливаю мое исключение с попытаться поймать:
I/error with click(14476): System.Net.WebException: Error: TrustFailure (The authentication or decryption has failed.)
Probleme исходит от этой линии:
HttpResponseMessage response = await client.PostAsync(url, content);
Пример с Почтальон, для связи с этим, я получаю соединение Токен:
Post -> Headers
- Content_type : application/x-www-form-urlencoded
- grand_type : password
- username : User1
- password : 123456
результат:
{ "access_token": "ATT4U2xGQqsdf", "token_type": "bearer", "expires_in": 15 }
Стараюсь anothers способы связи тоже (example here) И интересно, когда Я прочитал курс для Android (here), который сказал, что не создавайте интерфейс подключения whit thread, но используйте другой поток. Но много примеров, которые я нашел, не используют интерфейс потока, почему? Или я неправильно понял одну вещь?
Я также задаюсь вопросом, есть ли проблема из моих настроек?
Или, может быть, я просто полностью потерялся ... (ха-ха).
С наилучшими пожеланиями, Romain
Благодарим Zroq за ваш ответ! Теперь он отлично работает, спасибо за эту информацию! –
Как «добавить сертификат, который дополняет ваш POST»? – mutex