Usuário com melhor resposta
Pegar mensagem da API no MVC

Pergunta
-
Na minha API estou fazendo assim :
if(arquivo == null) { resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent("Erro de processamento"), ReasonPhrase = "Erro : Arquivo Inexistente" }; throw new HttpResponseException(resp); }
No Postman aparece direitinho, a minha duvida é como pegar esse retorno no MVC e mostrar a mensagem para o usuário ?
Estou fazendo da forma mais correta ?
Junior
Respostas
-
MVC 5 (minha solução tem 2 projetos API e MVC).
Tranquilo estarei tentando lhe ajudar.
Junior
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
-
Tentou transformar em um tipo dymanic e a partir dele fazer um Wrapper para o objeto que precisa?
Danilo Oliveira www.coffeeandcodes.com.br
- Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
Todas as Respostas
-
Use o HttpClient normalmente. Verifique se houve sucesso no Response e depois faça a conversão do resultado.
if (response.IsSuccessStatusCode) { ... } else { var errorMessage = response.Content.ReadAsStringAsync().Result; }
Danilo Oliveira www.coffeeandcodes.com.br
- Editado DaniloTec sexta-feira, 10 de novembro de 2017 21:51
-
Olá Danilo, já havia tentando assim mais dá erro na dessearilização , o erro de conversao
"cannot deserialize the current json array (e.g. 1 2 3 ) into type"
Já até mudei na minha API, estou fazendo somente assim :
Return BadRequest("mensagem de erro")
no postman vem assim
{"mensagem":"Erro: mensagem de erro"}
Junior
-
Olá Junior,
Você adicionou no HttpClient o mediaType?
var client = new HttpClient(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var resposta = client.GetAsync("SUA URL REQ").Result; //Depois dynamic ret = JsonConvert.DeserializeObject<dynamic>(resposta ); /*dessa forma você terá um retorno dinâmico, mais poderia adicionar uma anotação na classe pra converter já no formato.*/
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter -
-
Já estou fazendo isso sim.
Junior
Você está usando .Net Core ou .Net Framework (MVC5) ?
Por que posso criar um pequeno projeto pra tentar simular e tentar te ajudar.
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter -
-
MVC 5 (minha solução tem 2 projetos API e MVC).
Tranquilo estarei tentando lhe ajudar.
Junior
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
-
Tentou transformar em um tipo dymanic e a partir dele fazer um Wrapper para o objeto que precisa?
Danilo Oliveira www.coffeeandcodes.com.br
- Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
-
Encontrei o problema, estava no envio, eu leio um arquivo e serializo então mando para a API os dados como parametro, notei que uma informação estava indo errada na segunda linha do arquivo, só não entendo pq o erro já que todos os campos são string, mais bastou acertar essa informação e a mensagem apareceu.
Junior
-
Encontrei o problema, estava no envio, eu leio um arquivo e serializo então mando para a API os dados como parametro, notei que uma informação estava indo errada na segunda linha do arquivo, só não entendo pq o erro já que todos os campos são string, mais bastou acertar essa informação e a mensagem apareceu.
Junior
Parabéns!
Eu tinha percebido que postou só parte do código, não comentei sobre isso deduzindo que você tinha outro método pra enviar rss!
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter -
Depois observando melhor verifiquei que estava parando na API, no postman eu só esperei ele verificar o primeiro registro, ai notei que algo estava errado, então fui analisar os registros e como estou em teste tenho apenas um arquivo com 2 linhas.
Mais valeu muito obrigado pelo esforço.
Junior