|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
Inicio → WINDEV 25 → WX - SOAP XML Incompleto não funciona, voce tem que informar o caminho completo |
WX - SOAP XML Incompleto não funciona, voce tem que informar o caminho completo |
Iniciado por BOLLER ADRIANO, ago., 02 2016 6:10 PM - 2 respostas |
| |
| | | |
|
| |
Membro registado 3.651 mensagems Popularité : +175 (223 votes) |
|
Publicado em agosto, 02 2016 - 6:10 PM |
Prezados,
SOAP XML Incompleto não funciona, você tem que informar o caminho completo
O segredo é colocar o HEADER completo informando o médoto a ser usado.
Note esse código:
Xml_SEND is string = [ <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:act297_RtPlusSSDM-IRtPlusSSDM"> <soapenv:Header/> <soapenv:Body> <urn:ConsultarPosicaoTaxi soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <cod_client_celula xsi:type="xsd:int">v001</cod_client_celula> <num_corrid xsi:type="xsd:int">v002</num_corrid> <dat_hora_proces xsi:type="xsd:string">v003</dat_hora_proces> <num_proces xsi:type="xsd:int">v004</num_proces> </urn:ConsultarPosicaoTaxi> </soapenv:Body> </soapenv:Envelope> ]
Está incompleto pois nao sei o nome do método no Header, devo então informar:
Xml_SEND is string = [ <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:act297_RtPlusSSDM-IRtPlusSSDM#ConsultarPosicaoTaxi"> <soapenv:Header/> <soapenv:Body> <urn:ConsultarPosicaoTaxi soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <cod_client_celula xsi:type="xsd:int">v001</cod_client_celula> <num_corrid xsi:type="xsd:int">v002</num_corrid> <dat_hora_proces xsi:type="xsd:string">v003</dat_hora_proces> <num_proces xsi:type="xsd:int">v004</num_proces> </urn:ConsultarPosicaoTaxi> </soapenv:Body> </soapenv:Envelope> ]
Esse código acima esta ok com o HEADER informando o método que será usado
Linha alterada:
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:act297_RtPlusSSDM-IRtPlusSSDM#ConsultarPosicaoTaxi">
Mais precisamente foi colocado esse dois codigos para informar o metodo que será usado no HEADER e no BODY do envelope:
#ConsultarPosicaoTaxi"
<urn:ConsultarPosicaoTaxi soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
Use ferramentas como SOAP Ui ou similares para fazer a montagem do envelope de forma completa.
Dai é só usar o httprequest e httpgetresult
Programas similares ao SOAP UI:
Fonte: http://techonestop.com/soapui-alternative-for-webservice-testing
+ Apache JMeter
+ Postman
+ Wizdler
+ WebInject
+ HTTP Master
+ Spyport
+ Fiddler
Bons estudos
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, agosto, 02 2016 - 6:40 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.651 mensagems Popularité : +175 (223 votes) |
|
Publicado em agosto, 02 2016 - 6:41 PM |
EXEMPLO COMPLETO
Procedure WS_ConsultarPosicaoTaxi(LOCAL NumCorrida, LOCAL TaxiIndice, LOCAL DebugSN)
ChangeCharset(charsetOccidental)
CodClienteCelula, nRetornoCodigo is int = 0 XML_Retorno, NumProces, VerificaLatitude is string = ""
IF NumCorrida > 0 THEN
GloTaxiLatitude = "" GloTaxiLongitude = ""
HReadSeekFirst(t090_cliente_celular,t090_cliente_celular.A090_seq_cliente,1) IF HFound(t090_cliente_celular) = True THEN
NumProces = WS_ValidaRequisicao(t090_cliente_celular.A090_ddd_telefone,... t090_cliente_celular.A090_num_telefone,... 0,... 0,... "N")
IF CodClienteCelula = "" OR CodClienteCelula = 0 THEN CodClienteCelula = t090_cliente_celular.A090_cod_clientecelula END
Xml_SEND is string = [ <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:act297_RtPlusSSDM-IRtPlusSSDM#ConsultarPosicaoTaxi"> <soapenv:Header/> <soapenv:Body> <urn:ConsultarPosicaoTaxi soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <cod_client_celula xsi:type="xsd:int">v001</cod_client_celula> <num_corrid xsi:type="xsd:int">v002</num_corrid> <dat_hora_proces xsi:type="xsd:string">v003</dat_hora_proces> <num_proces xsi:type="xsd:int">v004</num_proces> </urn:ConsultarPosicaoTaxi> </soapenv:Body> </soapenv:Envelope> ]
Xml_SEND = Replace(Xml_SEND,"v001",CodClienteCelula,IgnoreCase) Xml_SEND = Replace(Xml_SEND,"v002",NumCorrida,IgnoreCase) Xml_SEND = Replace(Xml_SEND,"v003",GloDataHora,IgnoreCase) Xml_SEND = Replace(Xml_SEND,"v004",NumProces,IgnoreCase)
Xml_Header is string = [ SOAPAction: "urn:act297_RtPlusSSDM-IRtPlusSSDM#ConsultarPosicaoTaxi" ]
Tamanho is int = Length(Xml_SEND)
Xml_Header = Replace(Xml_Header,"TamanhoString",Tamanho)
IF DebugSN = "S" THEN IF InSimulatorMode() = False fSaveBuffer("/mnt/sdcard/EnvioFV.TXT", Xml_SEND) ELSE fSaveBuffer("c:\EnvioFV.TXT", Xml_SEND) END Info(Xml_SEND) END
HTTPTimeOut(GloTimeOut)
ok = HTTPRequest("http://199.124.60.220:8085/soap/IRtPlusSSDM","", "", Xml_SEND, "text/xml","","")
IF ok = True
XML_Retorno = HTTPGetResult(httpResult)
XML_Retorno = WS_RemoveAcentos(XML_Retorno)
IF DebugSN = "S" THEN IF InSimulatorMode() = False fSaveBuffer("/mnt/sdcard/RetornoFV.TXT", XML_Retorno) ELSE fSaveBuffer("c:\RetornoFV.TXT", XML_Retorno) END END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.651 mensagems Popularité : +175 (223 votes) |
|
Publicado em janeiro, 14 2021 - 12:08 AM |
//Aqui define o layout do XML a ser enviado pelo POST
sXDoc is string = [ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enderecodocliente:TMAtualizaOrdemFrete"> <soapenv:Header/> <soapenv:Body> <urn:MT_AtualizaOrdemFrete_Req_Conc> <ordem> <nr_ordem>?</nr_ordem> <dados_pesagem> <tara_veiculo>?</tara_veiculo> <peso_bruto>?</peso_bruto> <peso_liquido_real>?</peso_liquido_real> </dados_pesagem> <inf_item> <id_etapa>?</id_etapa> <nr_remessa>?</nr_remessa> <item_remessa>?</item_remessa> <id_material>?</id_material> <quantidade>?</quantidade> <unidade_med_qtde>?</unidade_med_qtde> <inf_lote> <lote>?</lote> <qtde>?</qtde> <unidade_lote>?</unidade_lote> </inf_lote> </inf_item> <dados_analise> <temperatura_tanque>?</temperatura_tanque> <ap_veiculo_seta>?</ap_veiculo_seta> <massa_especifica>?</massa_especifica> <fator_reducao_vol>?</fator_reducao_vol> <alcalinidade>?</alcalinidade> <volume_20>?</volume_20> <acidez_total>?</acidez_total> <grau_inpm>?</grau_inpm> <aspecto>?</aspecto> </dados_analise> <checklist> <id_checklist>?</id_checklist> </checklist> <lacres> @LACRE@ </lacres> </ordem> </urn:MT_AtualizaOrdemFrete_Req_Conc> </soapenv:Body> </soapenv:Envelope> ]
//Exemplo de como substituir parte do XML inicial por variáveis
sLacre is string = "<lacre>?</lacre>"
sXDoc = Replace(sXDoc,"@LACRE@",sLacre)
//webservice req is httpRequest
req.URL = "http://servidor.cliente.com.br:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BS_CONCEITTO_D&receiverParty=&receiverService=&interface=SI_AtualizaOrdemFrete_Out&interfaceNamespace=urn:enderecodocliente:TMAtualizaOrdemFrete" req.User = "TESTE" req.Password = "1234" req.Header["SOAPAction"] = "Conceitto/Login" req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)" req.Method = httpPost req.ContentType = "text/xml; charset=utf-8"
req.Content = sXDoc
cMyResponse is httpResponse = HTTPSend(req)
IF ErrorOccurred THEN Error(ErrorInfo(errFullDetails)) ELSE sXDoc = cMyResponse..Content Info(sXDoc) END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|