Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao tentar autenticar usuário


    public class LoginService
    {
        public async Task FazerLogin(Login login)
        {
            using (var client = new HttpClient())
            {
                // define campos para envio ao servidor para validar a requisicao
                var camposFormulario = new FormUrlEncodedContent(new[]
                {
                        new KeyValuePair<string, string>("email", login.email),
                        new KeyValuePair<string, string>("senha", login.senha)
                });

                // define URI base para acessar a rota
                client.BaseAddress = new Uri("https://aluracar.herokuapp.com");

                // aguarda o retorno da requisicao
                var resultado = await client.PostAsync("/login", camposFormulario);
                if (resultado.IsSuccessStatusCode)
                    // envia msg caso de sucesso
                    MessagingCenter.Send<Usuario>(new Usuario(), "SucessoLogin");
                else
                    MessagingCenter.Send<LoginException>(new LoginException("Usuário ou senha incorretos!"), "FalhaLogin");
            }
        }
    }

Ao tentar realizar a autenticação recebo este erro :

{StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Connection: keep-alive Server: Apache-Coyote/1.1 Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE Access-Control-Max-Age: 3600 Access-Control-Allow-Headers: x-requested-with Transfer-Encoding: chunked Date: Sat, 29 Sep 2018 05:25:22 GMT Via: 1.1 vegur Content-Type: application/json;charset=UTF-8 }}.

Preciso liberar algo no cabeçalho da requisição?

4 respostas
solução!

Galera, consegui resolver de forma simples, por algum motivo quando utilizamos o https estava gerando o erro acima, coloquei o codigo conforme abaixo:

 client.BaseAddress = new Uri("http://aluracar.herokuapp.com");

Consegui obter a resposta com sucesso do servidor.

Abs

Olá, André

Fico feliz que você tenha conseguido contornar via http em vez de https.

Mas era para funcionar da outra forma também. Você consegue acessar esse endereço a partir da sua máquina?

https://aluracar.herokuapp.com

De qualquer forma, obrigado pela sua participação no fórum! Vou tentar simular o problema aqui, só para garantir que não é um problema com a aplicação Xamarin. Obrigado!

Olá Marcelo, muito estranho, eu postei que havia conseguido executar a aplicação mais o problema voltou a ocorrer, seu consigo normalmente acessar a url acima do meu navegador, o problema está na hora de tentar obter dentro da aplicação, ainda continua retornando o erro conforme postei anteriormente.

Abraços

{StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Connection: keep-alive
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: x-requested-with
Transfer-Encoding: chunked
Date: Tue, 02 Oct 2018 03:18:13 GMT
Via: 1.1 vegur
Content-Type: application/json;charset=UTF-8
}}

Sempre me retorna este erro ao tentar realizar a requisição.