Eliza Maria Ответов: 0

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);

0 Ответов