none
Pegar mensagem da API no MVC RRS feed

  • 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

    sexta-feira, 10 de novembro de 2017 17:57

Respostas

  • MVC 5 (minha solução tem 2 projetos API e MVC).

    Junior

    Tranquilo estarei tentando lhe 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

    • Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
    segunda-feira, 13 de novembro de 2017 14:38
  • 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
    segunda-feira, 13 de novembro de 2017 18:35

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
    sexta-feira, 10 de novembro de 2017 21:35
  • 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

    segunda-feira, 13 de novembro de 2017 13:05
  • 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

    segunda-feira, 13 de novembro de 2017 13:57
  • Já estou fazendo isso sim.

    Junior

    segunda-feira, 13 de novembro de 2017 14:11
  • 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

    segunda-feira, 13 de novembro de 2017 14:14
  • MVC 5 (minha solução tem 2 projetos API e MVC).

    Junior

    segunda-feira, 13 de novembro de 2017 14:29
  • MVC 5 (minha solução tem 2 projetos API e MVC).

    Junior

    Tranquilo estarei tentando lhe 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

    • Marcado como Resposta Junior_luiz segunda-feira, 13 de novembro de 2017 19:23
    segunda-feira, 13 de novembro de 2017 14:38
  • 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
    segunda-feira, 13 de novembro de 2017 18:35
  • 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

    segunda-feira, 13 de novembro de 2017 18:53
  • 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

    segunda-feira, 13 de novembro de 2017 19:00
  • 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

    segunda-feira, 13 de novembro de 2017 19:23