PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Consumindo um Webservice com httpResponse, envelope soap, header soap usando post
WX - Consumindo um Webservice com httpResponse, envelope soap, header soap usando post
Iniciado por BOLLER, out., 24 2017 9:43 PM - 3 respostas
Membro registado
3.207 mensagems
Popularité : +89 (91 votes)
Publicado em outubro, 24 2017 - 9:43 PM
//EXEMPLO
PROCEDURE WS_Login(Empresa, Matricula, Senha)

sUserId, sCPF, sUrl, sNome, sFilial, sSaldo is string

sXML is string = StringBuild("<?xml version=""1.0"" encoding=""utf-8""?>" +
"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" +
"<soap:Body><Login xmlns=""wxinformatica"">" +
"<ent><UserId>0</UserId><IMEI>1234567890</IMEI><latitude>0</latitude><longitude>0</longitude><AccessToken></AccessToken><device><marca>Samsung</marca><modelo>S8+</modelo><versao>7.1.1</versao><resWidth>1920</resWidth><resHeight>1080</resHeight></device></ent>" +
"<empresa>@EMPRESA@</empresa><matricula>@MATRICULA@</matricula><senha>@SENHA@</senha>" +
"</Login></soap:Body></soap:Envelope>")


sXML = Replace(sXML,"@EMPRESA@",empresa)
sXML = Replace(sXML,"@MATRICULA@",matricula)
sXML = Replace(sXML,"@SENHA@",senha)

xDoc is xmlDocument = XMLOpen(sXML,fromString)

req is httpRequest

req..URL = "https://wxinformatica.com.br/ws.asmx"
req.Header["SOAPAction"] = "wxinformatica/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 = XMLBuildString(xDoc) // muito importante manter essa linha

cMyResponse is httpResponse = HTTPSend(req)

IF ErrorOccurred THEN

Error(ErrorInfo(errFullDetails))

ELSE

xDoc = XMLOpen(cMyResponse..Content,fromString)

sUserId = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]
sCPF = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[2]
sUrl = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[3]
sNome = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[4]
sFilial = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[5]
sSaldo = xDoc..NoeudRacine[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[1]..NoeudFils[6]

Info(sUserId, sCPF, sUrl, sNome, sFilial, sSaldo)

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/
Mensagem modificada, outubro, 24 2017 - 9:47 PM
Membro registado
3.207 mensagems
Popularité : +89 (91 votes)
Publicado em outubro, 25 2017 - 12:42 AM
Atenção:

Level 22 ou acima vem com suporte a TLS 2.1 // Protocolo seguro nao foi implementado nas versoes antigas dos celulares.

O Lollipop é API 21 do Android SDK.

Ou seja, abaixo da versão 6 do android, deve ser http a url do webservice e se for igual ou superior a 6 do android do celular pode usar https no endereço do webservice. Assim você consegue com http usar até com a versao 4.0 em diante.

Digamos um endereço assim:

http://wxinformatica.com/ws.asmx… do webservice funciona da 4.0 em diante

e

https://wxinformatica.com/ws.asmx… do webservice funciona da 6.0 em diante

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.207 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 14 2021 - 12:04 AM
Solução 100%

//Aqui define o layout do XML a ser enviado pelo POST

sXDoc is string = [





?

?
?
?


?
?
?
?
?
?

?
?
?



?
?
?
?
?
?
?
?
?


?


@LACRE@





]

//Exemplo de como substituir parte do XML inicial por variáveis

sLacre is string = "?"

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/
Membro registado
3.207 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 14 2021 - 12:05 AM
Solução 100%

//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/