415 неподдерживаемый тип носителя для метода POST xamarin
У меня есть метод входа в систему, где я пытаюсь передать токен в заголовок вместе с учетными данными и форматом "application/json", но, к сожалению, я получаю 415 неподдерживаемых типов носителей, и я не понимаю, почему.Я понимаю,что формат неправильный, но почему?.Для серверной части я использую .net core, и метод аутентификации там работает отлично.Это метод входа в систему в Xamarin:
public async Task<Token> Login(string email, string password) { HttpClient client = new HttpClient(); var Loginurl = "http://10.0.2.2:5000/api/"; Token returnResult = default(Token); var uri = new Uri(string.Format("{0}{1}", Loginurl, "Token")); try { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("Authorization", "Bearer" + returnResult); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", email, password)))); List<KeyValuePair<string, string>> requestData = new List<KeyValuePair<string, string>>(); requestData.Add(new KeyValuePair<string, string>("email", email)); requestData.Add(new KeyValuePair<string, string>("password", password)); requestData.Add(new KeyValuePair<string, string>("grant_type", "password")); FormUrlEncodedContent requestBody = new FormUrlEncodedContent(requestData); //Request Token var request = await client.PostAsync(uri, requestBody); if (request.IsSuccessStatusCode) { var response = await request.Content.ReadAsStringAsync(); returnResult = JsonConvert.DeserializeObject<Token>(response); await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new UsersPage()); } else { await App.Current.MainPage.DisplayAlert("Something went wrong!", "Your credentials are not good", "ok", "cancel"); } } catch (Exception ex) { string e = ex.InnerException.ToString(); } return returnResult; }
Может ли кто-нибудь помочь мне в этом вопросе?Любая помощь будет оценена по достоинству!
Что я уже пробовал:
Я также пробовал использовать StringContent,но получил 400 ошибок "плохой запрос".Вот что я пытался сделать:
var client = new HttpClient(); var json = JsonConvert.SerializeObject(keyValue); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync(urlLogin,content);