Usuário com melhor resposta
Web service- xml como string?

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 conveniadopasswd
: senha do laboratório conveniadoXML
: XML do tipo Registro.xsd ou ConsultaLote.xsdRetorno
: XML do tipo RegistroAdmitido.xsdNa 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?
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!
- Editado Edson Loris quarta-feira, 21 de março de 2018 12:10
- Marcado como Resposta Visual Studio 2010 salvando mp3 na base mysql quarta-feira, 21 de março de 2018 17:31
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.
-
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);
-
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
-
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> -
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!
- Editado Edson Loris quarta-feira, 21 de março de 2018 12:10
- Marcado como Resposta Visual Studio 2010 salvando mp3 na base mysql quarta-feira, 21 de março de 2018 17:31
-