4
respostas

StatusCode: 500

Esta retornando esse código no post: {StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Via: 1.1 vegur Connection: keep-alive Server: Apache-Coyote/1.1 Transfer-Encoding: chunked Date: Mon, 01 Jul 2019 10:28:31 GMT Content-Type: application/json; charset=UTF-8 }}

 public async void SalvarAgendamento()
        {
            HttpClient cliente = new HttpClient();

            var dataHoraAgendamento = new DateTime(
               DataAgendamento.Year, DataAgendamento.Month, DataAgendamento.Day,
               HoraAgendamento.Hours, HoraAgendamento.Minutes, HoraAgendamento.Seconds);

            var jason = JsonConvert.SerializeObject(new
            {
                nome = Nome,
                fone = Fone,
                email = Email,
                modelo = Veiculo.Modelo,
                preco = Veiculo.Preco,
                dataAgendamento = dataHoraAgendamento
            });

            var conteudo = new StringContent(jason, Encoding.UTF8, "application/json");
            var resposta = await cliente.PostAsync(URL_POST_AGENDAMENTO,conteudo);

            if (resposta.IsSuccessStatusCode)
            {
                MessagingCenter.Send<Agendamento>(this.Agendamento, "SucessoAgendamento");
            }
            else
            {
                MessagingCenter.Send<ArgumentException>(new ArgumentException(), "FalhaAgendamento");
            }
        }
4 respostas

Oi Ludgero, tudo bem?

O serviço do site que a gente usa pra fazer as requisições (http://aluracar.herokuapp.com/salvaragendamento) está programado pra retornar sempre 2 respostas com sucesso (HTTP 200 Ok) e 1 resposta com erro (HTTP Internal Server Error). Com isso dá pra testar o tratamento de exceções na sua aplicação. Veja que as próximas 2 requisições depois da falha serão sempre bem-sucedidas. Obrigado!

Você diz se eu salvar a primeira vez, é para retornar 500 e depois salvando novamente irá retornar 200? Não deu certo. Alguma coisa errada com o código?

Oi Ludgero

Eu testei aqui e funcionou. Sim, era para retornar duas vezes HTTP 200 Ok, depois 1 vez HTTP 500 e depois repetir o ciclo.

Por favor, preciso que você inspecione a aplicação e veja o conteúdo dessa variável JSON:

            var jason = JsonConvert.SerializeObject(new
            {
                nome = Nome,
                fone = Fone,
                email = Email,
                modelo = Veiculo.Modelo,
                preco = Veiculo.Preco,
                dataAgendamento = dataHoraAgendamento
            });

Assim vou poder simular o problema por aqui. Obrigado!

nome, fone, email estao retornando nulo. Deve ser isso.