PDA

Ver la Versión Completa : [Duda] Ajuda em Chillkat ActiveX


Paulo
8 de enero de 2025, 17:29
Hola a todos.

Tenho necessidade de implementar um soap usando o chillkat v9.5.0, uma vez que tem diversas vantagens neste caso, sobretudo o de ser independente do sistema operativo em termos de TLS.

O codigo em VB.Net é:
Dim resp As Chilkat.HttpResponse = http.PostXml(pWebService, pSoapFile, "utf-8")

O que fiz em PowerCobol v10 é:
INVOKE ChilkatHttp1 "PostXml" USING pWebService pSoapFile "utf-8" RETURNING ChilkatHttpResponse1.

Mas dá sempre em cobsnap e erro.
Alguém tem experiencia nestes casos que possa ajudar ?

Gracias

fastpho
8 de enero de 2025, 19:16
Hola @Paulo
Con estos objetos (ChilkatXml ,ChilkatHttp1 , ChilkatHttpResponse ) de Chillkat no he trabajado pero con otros si.

Encontre un ejemplo en vb6 Link
https://www.example-code.com/vb6/soap_web_service.asp

Traducido a PowerCobol algo asi seria :
Espero esto te ayude en algo.

WORKING-STORAGE SECTION.
01 success pic s9(9) comp-5.
01 XmlFile pic x(50) value spaces.
01 endpointUrl pic x(50) value spaces.
01 xmlContent pic x(50) value spaces.
01 xmlCharset pic x(5) value spaces.
01 responseStatusCode pic s9(9) comp-5.

PROCEDURE DIVISION.
*objetos usados
* ChilkatXml1
* ChilkatHttpResponse1
* ChilkatHttp1

*>-----------------------
*> xml
move "ukPostCodeSoap.xml" to XmlFile.
INVOKE ChilkatXml1 "LoadXml" USING XmlFile RETURNING success.
if success not = 1 then
display "error"
exit program
else
display "ok"
end-if.
INVOKE ChilkatXml1 "GetXml" RETURNING xmlContent.
display "xmlContent : " , xmlContent.

*>-----------------------
*> http

INVOKE ChilkatHttp1 "SetRequestHeader" USING "SOAPAction" "http://www.webserviceX.NET/GetUKLocationByPostCode".
INVOKE ChilkatHttp1 "SetRequestHeader" USING "Content-Type" "text/xml; charset=utf-8".

*>-------------------------
*> response
move "http://www.webservicex.net/uklocation.asmx" to endpointUrl.
move "utf-8" to xmlCharset.
INVOKE ChilkatHttp1 "PostXml" USING endpointUrl xmlContent xmlCharset RETURNING ChilkatHttpResponse1.

move "StatusCode" OF ChilkatHttpResponse1 to responseStatusCode.
display "Response Status Code: " , responseStatusCode.



Saludos...

Paulo
10 de enero de 2025, 10:45
Gracias.
Vou adaptar e testar.