none
Web service- xml como string? RRS feed

  • Pergunta

  • Adicionei o servidor no Add web reference, deu tudo certo. Na documentação ele pede o seguinte:

    getPedido(login as string, passwd as string, XML as string) as String

    Descrição do serviço:Cadastra ou Recupera lote de pedidos de exames.

    login: código do laboratório conveniado
    passwd: senha do laboratório conveniado
    XML: XML do tipo Registro.xsd ou ConsultaLote.xsd
    Retorno: XML do tipo RegistroAdmitido.xsd

    Na Chamada fiz o seguinte:

    string login = "6408"; string senha = "2448"; var xmlEnvio = File.ReadAllText(@"C:\Temp\HX120180228001.XML"); string xml; string[] dados = null; XmlDocument xmlText = new XmlDocument(); ws.XMLServer ws = new wsp.XMLServer(); xml = ws.getPedido(login, senha,xmlEnvio);

    Quando faço a chamada ele dar erro:

    Informações adicionais: mensagem SOAP mal formada.

    Acredito que a string xmlEnvio esteja errada.

    Como faço para colocar um xml como string no último campo?

    segunda-feira, 19 de março de 2018 11:51

Respostas

  • Bom dia amigo,

     A principio está ok, verifique a estrutura do xml se está correta, ou quando usamos o protocolo Soap, adicionamos a tag "Envelope no xml", sendo assim tente:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <soap:Body>
    <Registro>
           <ID>06-12-2016</ID>
           <Protocolo>2</Protocolo>
         
    <Lote>
       <CodLab>384</CodLab>
       <CodLoteLab>106122016001</CodLoteLab>
           <DataLote>2016-12-06</DataLote>
           <HoraLote>16:53:00</HoraLote>
                           <Pedido>
                               <CodPedLab>1-359209</CodPedLab>
                               <DataPed>2016-12-06</DataPed>
                               <HoraPed>08:00:00</HoraPed>
                               <Paciente>
                                   <CodPacLab>1</CodPacLab>
                                   <Nome>PACIENTE TESTE TRIADE</Nome>
                                   <Sexo>Masculino</Sexo>
                                   <DataNasc>1980-05-05</DataNasc>
                               </Paciente>
                               <Exame>
                                               <CodExmApoio>S|T4/T8|1</CodExmApoio>
                                               <CodExmLab>C48</CodExmLab>
                                               <DescMat>SANGUE TOTAL</DescMat>
                                               <DataColeta>2016-12-05</DataColeta>
                                               <HoraColeta>18:00:01</HoraColeta>
                                               <Conservante>EDTA</Conservante>
                               <InformacaoComplementar>
                                               <InfoComp>TempoDiurese</InfoComp>
                                               <Valor>1400</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>VolumeDiurese</InfoComp>
                                               <Valor>6L</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Altura</InfoComp>
                                               <Valor>1.60</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Peso</InfoComp>
                                               <Valor>63</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>PesoAmostra</InfoComp>
                                               <Valor>3g</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>TempoAmostra</InfoComp>
                                               <Valor>6seg</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>LinfocitosAbsoluto</InfoComp>
                                               <Valor>123456</Valor>
                               </InformacaoComplementar>
                                               <Observacao>observ</Observacao>
                               </Exame>
                           </Pedido>
    </Lote>
                           </Registro>
    </soap:Body>
    </soap:Envelope>

    Espero ter ajudado!

    No aguardo, um abraço!


    quarta-feira, 21 de março de 2018 12:10

Todas as Respostas

  • Boa tarde,

    Tudo bem?

    Obrigado por usar o fórum MSDN.

    Poderia nos explicar melhor o que precisa, por favor?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 19 de março de 2018 19:37
    Moderador
  • Olá tudo bem.

    A variável "xmlEnvio" e da class Registro.xsd

    Gerei a class e estou montando o xml solicitado.

    Mas na chamada do webservice ele pedi 3 string.

    Como faço pra colocar esse xml nessa string?

    Como eu informo essa varialvel no ultimo campo se o WS esta pedindo uma string?

    xml = ws.getPedido(login, senha, xmlEnvio);

     

    terça-feira, 20 de março de 2018 19:36
  • Olá amigo. Boa tarde,

    Essa leitura já alimenta a variável com a estrutura do XML:

    var xmlEnvio = File.ReadAllText(@"C:\Temp\HX120180228001.XML");

    Poste aqui como está a estrutura do xml no arquivo, pode ser apenas formatação.

    Um abraço!



    • Editado Edson Loris terça-feira, 20 de março de 2018 20:47
    terça-feira, 20 de março de 2018 20:46
  • Olá

    segue abaixo xml.

    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    <Registro>
           <ID>06-12-2016</ID>
           <Protocolo>2</Protocolo>
         
    <Lote>
       <CodLab>384</CodLab>
       <CodLoteLab>106122016001</CodLoteLab>
           <DataLote>2016-12-06</DataLote>
           <HoraLote>16:53:00</HoraLote>
                           <Pedido>
                               <CodPedLab>1-359209</CodPedLab>
                               <DataPed>2016-12-06</DataPed>
                               <HoraPed>08:00:00</HoraPed>
                               <Paciente>
                                   <CodPacLab>1</CodPacLab>
                                   <Nome>PACIENTE TESTE TRIADE</Nome>
                                   <Sexo>Masculino</Sexo>
                                   <DataNasc>1980-05-05</DataNasc>
                               </Paciente>
                               <Exame>
                                               <CodExmApoio>S|T4/T8|1</CodExmApoio>
                                               <CodExmLab>C48</CodExmLab>
                                               <DescMat>SANGUE TOTAL</DescMat>
                                               <DataColeta>2016-12-05</DataColeta>
                                               <HoraColeta>18:00:01</HoraColeta>
                                               <Conservante>EDTA</Conservante>
                               <InformacaoComplementar>
                                               <InfoComp>TempoDiurese</InfoComp>
                                               <Valor>1400</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>VolumeDiurese</InfoComp>
                                               <Valor>6L</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Altura</InfoComp>
                                               <Valor>1.60</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Peso</InfoComp>
                                               <Valor>63</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>PesoAmostra</InfoComp>
                                               <Valor>3g</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>TempoAmostra</InfoComp>
                                               <Valor>6seg</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>LinfocitosAbsoluto</InfoComp>
                                               <Valor>123456</Valor>
                               </InformacaoComplementar>
                                               <Observacao>observ</Observacao>
                               </Exame>
                           </Pedido>
    </Lote>
                           </Registro>

    quarta-feira, 21 de março de 2018 10:54
  • Bom dia amigo,

     A principio está ok, verifique a estrutura do xml se está correta, ou quando usamos o protocolo Soap, adicionamos a tag "Envelope no xml", sendo assim tente:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <soap:Body>
    <Registro>
           <ID>06-12-2016</ID>
           <Protocolo>2</Protocolo>
         
    <Lote>
       <CodLab>384</CodLab>
       <CodLoteLab>106122016001</CodLoteLab>
           <DataLote>2016-12-06</DataLote>
           <HoraLote>16:53:00</HoraLote>
                           <Pedido>
                               <CodPedLab>1-359209</CodPedLab>
                               <DataPed>2016-12-06</DataPed>
                               <HoraPed>08:00:00</HoraPed>
                               <Paciente>
                                   <CodPacLab>1</CodPacLab>
                                   <Nome>PACIENTE TESTE TRIADE</Nome>
                                   <Sexo>Masculino</Sexo>
                                   <DataNasc>1980-05-05</DataNasc>
                               </Paciente>
                               <Exame>
                                               <CodExmApoio>S|T4/T8|1</CodExmApoio>
                                               <CodExmLab>C48</CodExmLab>
                                               <DescMat>SANGUE TOTAL</DescMat>
                                               <DataColeta>2016-12-05</DataColeta>
                                               <HoraColeta>18:00:01</HoraColeta>
                                               <Conservante>EDTA</Conservante>
                               <InformacaoComplementar>
                                               <InfoComp>TempoDiurese</InfoComp>
                                               <Valor>1400</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>VolumeDiurese</InfoComp>
                                               <Valor>6L</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Altura</InfoComp>
                                               <Valor>1.60</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>Peso</InfoComp>
                                               <Valor>63</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>PesoAmostra</InfoComp>
                                               <Valor>3g</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>TempoAmostra</InfoComp>
                                               <Valor>6seg</Valor>
                               </InformacaoComplementar>
                               <InformacaoComplementar>
                                               <InfoComp>LinfocitosAbsoluto</InfoComp>
                                               <Valor>123456</Valor>
                               </InformacaoComplementar>
                                               <Observacao>observ</Observacao>
                               </Exame>
                           </Pedido>
    </Lote>
                           </Registro>
    </soap:Body>
    </soap:Envelope>

    Espero ter ajudado!

    No aguardo, um abraço!


    quarta-feira, 21 de março de 2018 12:10
  • Obrigado.

    Ajudou muito.

    quarta-feira, 21 de março de 2018 17:31