strong servicio node createclient consumir consume node.js web-services soap wsdl

node.js - servicio - Node soap, consume WSDL protegido con contraseña



soap request in node js (2)

Estoy intentando construir un cliente SOAP con Node, estoy usando el paquete "soap" ( https://www.npmjs.org/package/soap ) tratando de consumir un WSDL protegido por contraseña / usuario.

No puedo encontrar cómo pasar esas credenciales antes de crear el cliente mediante "soap.createClient", y por supuesto, no puedo recuperar el WSDL si no proporciono las credenciales correctas.

He intentado hacer:

soap.security.WSSecurity (''user'', ''pass'');

y luego llamar a "createClient" pero fue en vano.

Además, he intentado hacerlo con el nodo-soap-client, con este cliente que (al parecer) puedo conectar con el WSDL, pero después de eso, no tengo idea de dónde ir (cómo invocar los métodos).

¿Qué estoy haciendo mal?

¡Gracias por toda tu ayuda!


Las credenciales de nombre de usuario y contraseña se pueden pasar así:

var soap = require(''soap''); var url = ''your WSDL url''; var auth = "Basic " + new Buffer("your username" + ":" + "your password").toString("base64"); soap.createClient(url, { wsdl_headers: {Authorization: auth} }, function(err, client) { });

(derivado de https://github.com/vpulim/node-soap/issues/56 , gracias Gabriel Lucena https://github.com/glucena )


cuando agregué la autenticación a los encabezados, todavía tenía un problema. Después de leer el código y una serie de artículos, encontré que esto funcionaba.

// or use local wsdl if security required let url = ''http://service.asmx?wsdl'' let wsdl = ''wsdl.wsdl''; let soap = require(''soap''); let util = require(''util'') soap.createClient(wsdl, function(err, client) { //don''t forget to double slash the string or else the base64 will be incorrect client.setSecurity(new soap.BasicAuthSecurity(''admin//userName'', ''password'')); client.MethodFromWSDL(args, function (err, result) { console.log(util.inspect(result,{depth: null})) }); });