Envoyer un fichier par web service avec connexion WSSE Security
Bonjour,
En 2014, j'avais réalisé une application en VB.NET permettant d'envoyer un fichier zip par web service, ce web service nécessite une authentification WSSE Security.
Récemment, j'ai pu avoir de l'aide pour pouvoir faire la même chose en windev, le code que je vais poster utilise ce fichier WSDL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| l_adresse est chaîne="C:\"
l_fichier est chaîne="MonFichierZIPaEnvoyer.zip"
l_ZIPEnvoi est chaîne=l_adresse+l_fichier //chemin du fichier ZIP à envoyer
l_ZIPReponse est chaîne=l_adresse+"R-"+l_fichier //chemin du fichier ZIP retourné par le web service
ServicioWebSUNAT est sendBill
ServicioWebSUNAT.fileName=l_fichier
ServicioWebSUNAT.contentFile=fChargeBuffer(l_ZIPEnvoi)
hdr est chaîne=[
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>%1</wsse:Username>
<wsse:Password>%2</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
]
//identifiants de connexion WSSE Security
hdr=ChaîneConstruit(hdr,"Mettre ici le login","Mettre ici le mot de passe")
Xmlstring est chaîne=SOAPPrépare(billService.sendBill,ServicioWebSUNAT)
Xmlstring=Remplace(Xmlstring,"<SOAP-ENV:Header/>",hdr)
bRespuesta est booléen=SOAPExécuteXML("https://www.sunat.gob.pe/ol-ti-itcpgem-beta/billService?wsdl", Xmlstring)
SI (bRespuesta = Faux)
Erreur(SOAPErreur(SOAPErrCode))
RETOUR
FIN
sRetorno3 est chaîne=SOAPDonneRésultat(SOAPRésultatXML)
l_contenuSOAP est chaîne=fChargeTexte(sRetorno3)
l_reponse est chaîne=XMLExtraitChaîne(l_contenuSOAP,"applicationResponse",1,XMLIgnoreLaCasse)
l_reponseClair est chaîne=Décrypte(l_reponse,"",compresseAucun+crypteAucun,encodeBASE64)
fSauveBuffer(l_ZIPReponse,l_reponseClair)
Info("fin du traitement") |