Tratamento mensagem de 500 Internal Server Error nas funções HTTP
Descrição da Situação:
Fazendo uso da função HTTPOST e ao passar pela mesma ocorre a mensagem:
"500 Internal Server Error"
Porém verificando os detalhes da mensagem mostra que é porque o cnpj inválido.
Seria possível ao invés de retornar o erro “500 Internal Server Error”, apresentar a mensagem que está no detalhe? Para facilitar a intepretação?
Ticket relacionado: #29515
Rotina / Tela: Função dentro de regras lsp em geral
Solução:
Essa mensagem é um retorno do serviço que foi solicitado pela função HttpPost. Essa mensagem pode variar de acordo com o serviço utilizado, mas a tecnologia Senior não trata esse tipo de mensagem diretamente. O modo de fazer é bastante complexo, como temos inúmeros possíveis retornos, por estarmos trabalhando com diversos tipos de serviço, não há modo de padronizarmos a análise de erros de uma maneira geral para deixá-los todos tratados pela tecnologia.
Uma sugestão é fazer algum tratamento na própria regra LSP, porém precisa que ser feito de forma manual o tratamento dos erros. Ou seja, analisar os erros recebidos pelo retorno do serviço e com base nisso enviar mensagens de nossa escolha para a tela. Para tal, deve-se primeiramente usar a função HttpDesabilitaErroResposta. Desse modo, nós ainda teremos o retorno do serviço, porém esse retorno não será mais jogado diretamente na tela como um erro, aviso etc. Feito isso, deve-se usar a função HttpLeCodigoResposta. Com essa função, deve-se fazer uma tratativa para cada erro que se deseja tratar e programar um retorno específico para cada.