2
respostas

postasync dentro da classe Trava

Quando chamo o metodo GetLogin(param1, param2) de dentro da classe AcessoBD a linha do PostAsync trava e não continua. Ao retirar o método da classe funciona normalmente, segue abaixo o código no qual o PostAsync trava.

        async void Handle_Clicked(object sender, System.EventArgs e)
        {

            AcessoBD login = new AcessoBD(usuario,senha);

            if (login.GetLogin().Result)
                {
                Application.Current.MainPage = new MenuPage();
                    }
                    else
                    {
                    await DisplayAlert("Login", "Usuário/Senha inválido", "OK");
                    }
        }
 public class AcessoBD
    {

        const string URLWS = "http://aluracar.herokuapp.com";
        const string URL_SALVA_AGEND = "https://aluracar.herokuapp.com/salvaragendamento";
        const string URL_LOGIN = "https://aluracar.herokuapp.com";

        string usuario = "";
        string senha = "";

        public AcessoBD(string Usuario, string Senha)
        {
            this.usuario = Usuario;
            this.senha = Senha;
        }


        public async Task<bool> GetLogin()
        {

            HttpClient cliente = new HttpClient();

            FormUrlEncodedContent camposFormulario = new FormUrlEncodedContent(new[]
             {
                new KeyValuePair<string, string>("email", usuario),
                new KeyValuePair<string, string>("senha", senha)
              });


            //cliente.BaseAddress = new Uri(URL_LOGIN);
            var confirma = await cliente.PostAsync("https://aluracar.herokuapp.com/login", camposFormulario);

            return confirma.IsSuccessStatusCode;

        }
}
2 respostas

Olá, Claudio

Gostaria de mais algumas informações, pode ser? Quando a aplicação trava, ela fica parada em alguma linha, ou a aplicação gera uma exceção sem tratamento?

Marcelo, fica parado na linha do PostAsync e não gera exceção.