none
Executar um Post durante um Plugin RRS feed

  • Pergunta

  • Olá pessoal,

    Estou em uma tarefa que tenho de fazer um requisição a um outro sistema durante a execução de um plugin. A requisição não precisa ser assincrona, mas tenho de passar dois paramentros durante esse Post, (token, cancelamento_id).

    Obs: Durante a execução deste plugin vou executar um Post a um WebService http e não https, me falaram que se eu fizer essa ação via ServerSide eu consigo. O código que irei postar abaixo funciona em um aplicação de teste que eu fiz, mas no CRM, parece nem executar. Mudei alguns dados por segurança, mas o formato da url e o código são orignais.

    private async void RequisitarPost()
            {
    
                try
                {
                    string url_ = "http://189.112.68.194:8051/integra_crm/cancela_faturamento";
    
                    var token = "AAUGXETGHH9QIMHHS8AM";
                    
                    var formContent = new FormUrlEncodedContent(new[]
                        {
                            new KeyValuePair<string, string>("token", token), 
                            new KeyValuePair<string, string>("faturamento_id", "55") 
                        });
    
                    var myHttpClient = new HttpClient();
    
                    var response = await myHttpClient.PostAsync(url_, formContent);
    
                   
    
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        throw new InvalidPluginExecutionException("Sucesso!");
                    }
    
                    if (response.StatusCode == HttpStatusCode.InternalServerError)
                    {
                        throw new InvalidPluginExecutionException("Não Existe!");
                    }
    
                    var x = response.ReasonPhrase;
    
    
                    throw new InvalidPluginExecutionException("Resposta: " + x.ToString() + " " + response.StatusCode.ToString());
    
                }
                catch (Exception e)
                {
    
                    Console.WriteLine("O Erro: " + e.Message);
                }
    
            }

    terça-feira, 7 de julho de 2015 14:13

Respostas

  • Pessoal, eu consegui aqui, fiz da seguinte forma:

    string url_ = "http://189.112.64.196:8015/integra_crm/cancela_pedido";
    
                    var token = "AAUXXXEAXDH9QIMHHS8BB";
                    //var fechamento_id = 55;
    
                    var formContent = new FormUrlEncodedContent(new[]
                        {
                            new KeyValuePair<string, string>("token", token), 
                            new KeyValuePair<string, string>("pedido_id", "55") 
                        });
    
     var myHttpClient = new HttpClient();
    
                HttpResponseMessage response = myHttpClient.PostAsync(url_, formContent).Result;
    
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    throw new InvalidPluginExecutionException("Requisitou c/ Sucesso!");
                }
    
                if (response.StatusCode == HttpStatusCode.InternalServerError)
                {
                    throw new InvalidPluginExecutionException("Não Existe!");
                }
    
                var x = response.ReasonPhrase;
    Talvez sirva para mais alguem com o mesmo tipo de problema

    terça-feira, 7 de julho de 2015 17:17