Как реализовать систему входа в систему с использованием структуры JSON? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь дополнить систему входа в систему с помощью json ... Модель

public class LoginModel
{
    public string Username { get; set; }
    public string Password { get; set; }
}

Сервис

class LoginService
{
    public static async Task<bool> Login(LoginModel loginModel)
    {
        try
        {
            string url = DataURL.USERS + "/api/account/login";

            string stringContent = Newtonsoft.Json.JsonConvert.SerializeObject(loginModel);

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                using (var result = await client.PostAsync(url, new StringContent(stringContent, Encoding.UTF8, "application/json")))
                {
                    if (result.StatusCode == HttpStatusCode.OK)
                    {
                        string rawResponse = await result.Content.ReadAsStringAsync();
                        return true;
                    }
                }
            }
        }
        catch (Exception ex)
        {

        }
        return false;
    }
}

Также я использую шаблон MVVM,

LoginViewModel

class LoginViewModel
{

    public Command LoginCommand => new Command(async () =>
    {
        LoginModel model = new LoginModel("username", "password"); // (pokupiti uneto kor. ime i lozinka)

        if (model.CheckInformation())
        {
            bool isSuccess = await LoginService.Login(model);
            if (isSuccess)
            {
                Application.Current.MainPage = new MainPage();
            }
            else
            {
                Console.WriteLine("Пријава неуспешна. Неисправно корисничко име или лозинка.");                   
            }
        }
        else
        {
            Console.WriteLine("Пријава неуспешна. Неисправно корисничко име или лозинка.OK.");
        }
    });
}

LoginPage

public partial class LoginPage : ContentPage
{
    public LoginPage ()
    {
        InitializeComponent ();
        BindingContext = new LoginViewModel();
    }
}

Здесь вы можете увидеть, что находится по ссылке, которую я использую в службе: URL Итак,у меня вопрос, что я делаю не так и как исправить, чтобы получить StatusCode.OK?

1 Ответ

0 голосов
/ 29 марта 2019

Попробуйте, необходимо установить Newtonsoft.Json Пакет NuGet:

public class LoginModel
{
    [JsonProperty("username")]
    public string Username { get; set; }
    [JsonProperty("password")]
    public string Password { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...