none
Ler a construção do XML RRS feed

  • Pergunta

  • Bom dia pessoal

    Estou fazendo uma comunicação com um web service por C#, e preciso ver como está sendo montado o XML, eu consigo fazer a comunicação, envia, consigo pegar o retorno, mas preciso identificar alguns detalhes no XML de envio.

    Meu codigo:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Security.Cryptography.X509Certificates;
    
    namespace WebServiceRNTRCUltimo
    {
        /// <summary>
        /// Summary description for Service1
        /// </summary>
        [WebService(Namespace = "http://webservice.pamcard.jee.pamcary.com.br")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        // [System.Web.Script.Services.ScriptService]
        public class Service1 : System.Web.Services.WebService
        {
            private List<WebPamCary.fieldTO> fields = new List<WebPamCary.fieldTO>();
    
            public void adicionaFields(string _key, string _value)
            {
                WebPamCary.fieldTO wbF = new WebPamCary.fieldTO();
                wbF.key = _key;
                wbF.value = _value;
                fields.Add(wbF);
            }
    
            [WebMethod]
            public List<string> ConsomeRNTRC(string _numeroContratante, string _documentoNNumeroCNPJCPF, string _numeroRNTRC)
            {
                //System.Console.Out.WriteLine("Declarando o endpoint e o parâmetro de entrada.");
                WebPamCary.WSTransacionalClient wsTransacional = new WebPamCary.WSTransacionalClient();
    
                WebPamCary.execute request;
                request = new WebPamCary.execute();
                request.arg0 = new WebPamCary.requestTO();
    
                //System.Console.Out.WriteLine("Declarando os valores de entrada que serão compostos no Request");
    
                //System.Console.Out.WriteLine("Definindo o contexto e os 'fieldTO'"); 
    
                request.arg0.context = "FindRNTRC";
    
    
                /* ************* Adiciona os campos ************************ */
                adicionaFields("viagem.contratante.documento.numero", _numeroContratante);
                adicionaFields("viagem.favorecido.documento.qtde", "2");
                string CNPJ = "6";
                if (_documentoNNumeroCNPJCPF.Length > 12)
                {
                    adicionaFields("viagem.favorecido.documento1.tipo", "1");
                    CNPJ = "6";
                }
                else
                {
                    adicionaFields("viagem.favorecido.documento1.tipo", "2");
                    CNPJ = "5";
                }
                adicionaFields("viagem.favorecido.documento1.numero", _documentoNNumeroCNPJCPF);
                adicionaFields("viagem.favorecido.documento2.tipo", CNPJ);
                adicionaFields("viagem.favorecido.documento2.numero", _numeroRNTRC);
                /* ************* Adiciona os campos ************************ */
    
    
                request.arg0.fields = new WebPamCary.fieldTO[6];
                for (int i = 0; fields.Count > i; i++)
                {
                    request.arg0.fields.SetValue(fields[i], i);
                }
    
                /*
                X509Certificate2 certificado = new X509Certificate2("D:\\Certificado\\pamcard_coopercarga_81800849000141.crt");
                wsTransacional.ClientCredentials.ClientCertificate.Certificate = certificado;
                */
                List<string> retorno = new List<string>();
               
                //System.Console.Out.WriteLine("Executando o request.");
                
                WebPamCary.executeResponse response = wsTransacional.execute(request);
    
                //System.Console.Out.WriteLine("Tratando da resposta.");
                WebPamCary.fieldTO[] itensReposta = response.@return;
    
                    
                foreach (WebPamCary.fieldTO item in itensReposta)
                {
                    retorno.Add(item.key + "|" + item.value);
                }
                
               
                
                return retorno;
            }
        }
    }

    Se alguem souber como faço para pegar esse XML antes do envio, ou se tem algum propriedade que posso usar.

    Obrigado

    quarta-feira, 8 de maio de 2013 14:43

Respostas

  • Olá,

    O XML o qual se refere é o que você monta e retorna como string? Caso sim, basta verificar o conteúdo dessa String de retorno.

    Caso você queira verificar o XML completo retornado na mensagem SOAP, você pode utilizar o programa SOAPUI.

    Abraços

    sexta-feira, 10 de maio de 2013 20:01