none
WebApi funcionando somente no PostMan RRS feed

  • Pergunta

  • Caros,

    Criei uma webApi com um método Post e um Get ambas funcionando normalmente no PostMan, porém, quando eu estou consumindo o método Post na minha aplicação o método Post não funciona.

    Segue abaixo o método utilizado para consumir a Api

    public static string AtivarConsole()
            {

                var dados = new ConsoleAtivo()
                {
                    DataHora = DateTime.Now.Date,
                    HostName = Dns.GetHostName().ToString(),
                    IPAdress = ""
                };

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:49817//api/");
                    using (var response = client.PostAsJsonAsync<ConsoleAtivo>("ConsoleAtivo", dados))
                    {
                        response.Wait();
                        var result = response.Result;
                        if (result.IsSuccessStatusCode)
                        {
                            var dadosJson = result.Content.ReadAsStringAsync();
                            dadosJson.Wait();
                            var console = dadosJson.Result;
                            return "Console ativado com sucesso!!!";
                        }
                        else
                        {
                            return "Console não ativado!";
                        }
                    }
                }
            }

    sexta-feira, 3 de maio de 2019 12:21

Respostas

Todas as Respostas

  • Esse problema deve ser por causa da sua requisição e não por causa do código. Como você está requisitando o POST?

    tenta algo assim

    <script>
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous">
    </script>
    
    <script>
    $.ajax({
      type: "POST",
      url: url_do_post,
      data: data,
      success: func(data){ 
        console.log('POST com sucesso');
      },
    });
    </script>

    Se você prestar atenção, esse método acima está como "POST"

    __________________________________

    Se ajudou, marque como resposta! Obrigado.

    sexta-feira, 3 de maio de 2019 14:47
  • Olá Danilo,

    Obrigado pela resposta, porém, eu preciso que essa requisição seja feita no c# e não no ajax!

    Mesmo assim eu agradeço!

    sábado, 4 de maio de 2019 02:18
  • Olá,

    Você já tem o código para o POST em C#?

    Aqui tem um exemplo: https://stackoverflow.com/questions/4015324/how-to-make-http-post-web-request?rq=1

    Se não funcionar ou tiver qualquer dúvida só avisar...

    • Marcado como Resposta IgorFKModerator segunda-feira, 24 de junho de 2019 16:25
    sábado, 4 de maio de 2019 09:33
  • bom dia. Conseguiu a solução em c#?
    sexta-feira, 3 de janeiro de 2020 13:21
  • Estou com o mesmo problema. Poderia ajudar?
    sexta-feira, 3 de janeiro de 2020 13:21
  • Olá Juliano!

    Esse código que está aquino forum tem um erro no método PostAsJsonAsync, neste método o primeiro parametro é a uri da api onde será enviado o post. Segue abaixo a correção do código

    public static string AtivarConsole()
            {

                var dados = new ConsoleAtivo()
                {
                    DataHora = DateTime.Now.Date,
                    HostName = Dns.GetHostName().ToString(),
                    IPAdress = ""
                };

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:49817//api/");
                    using (var response = client.PostAsJsonAsync<ConsoleAtivo>( new Uri("http://localhost:49817//api/"), dados))
                    {
                        response.Wait();
                        var result = response.Result;
                        if (result.IsSuccessStatusCode)
                        {
                            var dadosJson = result.Content.ReadAsStringAsync();
                            dadosJson.Wait();
                            var console = dadosJson.Result;
                            return "Console ativado com sucesso!!!";
                        }
                        else
                        {
                            return "Console não ativado!";
                        }
                    }
                }
            }

    sexta-feira, 3 de janeiro de 2020 18:30