Página 1 de 1
webservice usando soap
Enviado: 13 Mai 2016 16:22
por edutek
Boa tarde
Alguem tem um exemplo de acesso a WebServiçe usando o SOAP
Endereços de WSDL nosso WebServices para validação do processo de integração. (ambiente de homologação)
http://186.250.92.15...l/wsdl/IDMDados
http://186.250.92.15...adosSolMonitora
Usuário: WEBSERVICE
Senha: WEBSERVICE
Transportador: 7
como eu chamaria isso
webservice usando soap
Enviado: 13 Mai 2016 17:24
por Toledo
Eduardo, os endereços de WSDL ficaram quebrados, então poste novamente os endereços de WSDL, mas coloque entre as tags
endereçoWSDL.
Abraços
webservice usando soap
Enviado: 13 Mai 2016 23:16
por edutek
webservice usando soap
Enviado: 14 Mai 2016 01:37
por rochinha
Amiguinhos,
edutek
Provavelmente você deverá enviar um .XML formatado com os dados necessários para este WS.
Veja se te dá uma luz:
Código: Selecionar todos
cWebService := "http://webservices.sefaz.rs.gov.br/CadastroContribuintesRSGeral_XML.asp"
txtCPF := "00000000000"
txtSenha := "123456"
txtIE := "0000000000"
txtCNPJ := "00000000000000"
txtCPFtitular := "00000000000"
//Monta o documento XML conforme a estrutura definida para este Web Service
sConteudo := []
sConteudo := sConteudo + [<PARAMETROS>]
sConteudo := sConteudo + [ <CPF>] + Right("00000000000" + Trim(txtCPF), 11) + [</CPF>]
sConteudo := sConteudo + [ <SENHA>] + txtSenha + [</SENHA>]
sConteudo := sConteudo + [ <IE>] + Right("0000000000" + Trim(txtIE), 10) + [</IE>]
sConteudo := sConteudo + [ <CNPJ>] + Right("00000000000000" + Trim(txtCNPJ), 14) + [</CNPJ>]
sConteudo := sConteudo + [ <CPFTITULAR>] + Right("00000000000" + Trim(txtCPFtitular), 11) + [</CPFTITULAR>]
sConteudo := sConteudo + [</PARAMETROS>]
//Converte para um documento XML no padrão DOM
objXMLDOM := TOLEAUTO():New( "Microsoft.XMLDOM" )
//Faz o carregamento do XML para o motor
objXMLDOM:async := .f.
objXMLDOM:loadXML( sConteudo )
//Cria objeto de conversação
objXMLHTTP := TOleAuto():New( "MSXML2.ServerXMLHTTP" )
//Aponta para o Web Service
objXMLHTTP:open( "POST", cWebService, .F. )
//Envia o documento XML para o Web Service
objXMLHTTP:send( objXMLDOM:xml )
//Aqui é carregado o retorno do Web Service.
sRetorno := objXMLHTTP:responseXML:xml
objXMLDOM:async := .f.
cResponseText := objXMLDOM:loadXML( sRetorno )
//Mostra o conteúdo do retorno
MemoEdit( cResponseText )
webservice usando soap
Enviado: 14 Mai 2016 10:56
por Toledo
Amigos, segue em anexo um exemplo.
edutek escreveu:como eu chamaria isso
Em um destes endereços de WebService que você postou tem mais de 40 funções (operations), então seria bom ver se este webservice disponibiliza algum manual.
Neste demo que está em anexo, estou usando a função
GetDataTransportador, que usa os dados que você passou (Usuário, senha e transportador).
enviado.xml
Código: Selecionar todos
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:uDMDados-IDMDados">
<soapenv:Header/>
<soapenv:Body>
<urn:GetDataTransportador soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<UsuLogin xsi:type="xsd:string">WEBSERVICE</UsuLogin>
<UsuSenha xsi:type="xsd:string">WEBSERVICE</UsuSenha>
<TranCodigo xsi:type="xsd:int">7</TranCodigo>
<QtdeReg xsi:type="xsd:int">10</QtdeReg>
</urn:GetDataTransportador>
</soapenv:Body>
</soapenv:Envelope>
retorno.xml
Código: Selecionar todos
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:GetDataTransportadorResponse xmlns:NS1="urn:uDMDados-IDMDados">
<return xsi:type="xsd:string"><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
<ReturnDataTran>
<DataTran>
<Records>10</Records>
<Tran>
<tran_pess_oras_codigo>18</tran_pess_oras_codigo>
<pjur_razao_social>TRANSPORTES FUTURA LTDA.</pjur_razao_social>
<pjur_cnpj>06712436000190</pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9631</tran_pess_oras_codigo>
<pjur_razao_social>TRANSGATO LTDA.</pjur_razao_social>
<pjur_cnpj>24777054000126</pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9639</tran_pess_oras_codigo>
<pjur_razao_social>ACE</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9640</tran_pess_oras_codigo>
<pjur_razao_social>AGF E ALLIANCE</pjur_razao_social>
<pjur_cnpj>86730103000122</pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9641</tran_pess_oras_codigo>
<pjur_razao_social>BERKLEY</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9642</tran_pess_oras_codigo>
<pjur_razao_social>CHUBB</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9643</tran_pess_oras_codigo>
<pjur_razao_social>GENERALI SEGUROS</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9644</tran_pess_oras_codigo>
<pjur_razao_social>HDI HANNOVER</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9645</tran_pess_oras_codigo>
<pjur_razao_social>ITAU</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
<Tran>
<tran_pess_oras_codigo>9646</tran_pess_oras_codigo>
<pjur_razao_social>LIBERTY PAULISTA</pjur_razao_social>
<pjur_cnpj></pjur_cnpj>
</Tran>
</DataTran>
</ReturnDataTran>]]></return>
</NS1:GetDataTransportadorResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
webservice usando soap
Enviado: 14 Mai 2016 13:53
por asimoes
Pessoal,
Eu tenho essa tag em um xml de envio, como é que faço a quebra de linha na mensagem:
Por exemplo o conteúdo da variável cMensagem
Código: Selecionar todos
cMensagem:="TESTE DE ENVIO DE MENSAGEM"+hb_Eol()
cMensagem+="RIO DE JANEIRO, 14 DE MAIO DE 2016"+hb_Eol()
cMensagem+="TESTE COM HARBOUR"
cXML += [<mensagem>]+cMensagem+[</mensagem>]+hb_EoL()
webservice usando soap
Enviado: 14 Mai 2016 15:53
por asimoes
Consegui:
cMensagem:="TESTE DE ENVIO DE MENSAGEM"+hb_Eol()
cMensagem+="RIO DE JANEIRO, 14 DE MAIO DE 2016"+hb_Eol()
cMensagem+="TESTE COM HARBOUR"
cMensagem := StrTran(cMensagem, hb_Eol(), "<br>")
Código: Selecionar todos
cXML += [<mensagem>]+"<![CDATA["+cMensagem+"]]>"+[</mensagem>]+hb_EoL()
Assim eu resolvi no xml cada quebra linha de uma mensagem
webservice usando soap
Enviado: 16 Mai 2016 13:53
por edutek
Obrigado pelo Retorno.
Uma coisa, eu uso xharbour
a funcao hb_eol() tem uma equivalente em xharbour ?
e a hb_milliseconds(500) pode ser trocada por outras ?
webservice usando soap
Enviado: 16 Mai 2016 14:09
por asimoes
hb_eol() => Chr(13) + Chr(10) // no windows, no linux tem outro comportamento
Se a estiver usando a hb_milliseconds(500) pode substituir conforme exemplo abaixo
Código: Selecionar todos
Do While oServerWS:readyState != 4
oServerWS:WaitForResponse( 500 )
Enddo