6
votes

Envoi d'arguments via SOAP dans Node.js à l'aide du savon de nœud

Je viens de commencer avec Nodejs et je creuse à parler à un service de savon en utilisant nœud de MileWise- Savon . J'utilise une API de SOAP de validation d'adresse électronique de base comme mon cas de test.

Je ne semble pas comprendre la bonne façon de formater mes listes d'arguments. P>

My SOAP Code client: P>

    var url = "http://www.restfulwebservices.net/wcf/EmailValidationService.svc?wsdl";
soap.createClient(url, function(err, client){
    console.log(client.describe().EmailValidationService.BasicHttpBinding_IEmailValidationService.Validate);
    client.Validate({result:"my@emailaddress.com"}, function(err, result){
            console.log(result);
    });
});


0 commentaires

3 Réponses :


10
votes

Cela devrait fonctionner, si vous ajoutez un espace de noms sur demande. Il s'agit d'un exemple de code. xxx pré>

Cependant, il renvoie "l'accès est refusé". P>

J'utilise SOAPUI pour tester ce service Web, il renvoie le même résultat.

J'essaie un autre service Web, et ça marche. P>

var soap = require('soap');

var url = "http://www.restfulwebservices.net/wcf/StockQuoteService.svc?wsdl";

var args = {"tns:request":"GOOG"};

soap.createClient(url, function(err, client){

    client.StockQuoteService.BasicHttpBinding_IStockQuoteService.GetStockQuote(args, function(err, result){
            if (err) throw err;
            console.log(result);
    });
});


0 commentaires

1
votes

validateresult code> prend une demande de tableau. C'est ce que demande [] code> signifie. Si c'était un objet, il devrait simplement être demandé. Par conséquent, si vous essayez des arguments comme suit, cela peut fonctionner:

var args = {request[]: ["my@emailadress.com", "another email adress if you
want"]};


0 commentaires

-1
votes
I have similar situation where i have accountId[] , i need to pass multiple accountID, when i pass like "tns:accountId[]": [2321,2345325], it failing saying incorrect request parameter, it comes as <tns:accountId[]>2321</tns:accountId[]>
<tns:accountId[]>2345325</tns:accountId[]>.

I need to get <tns:accountId>2321</tns:accountId>
<tns:accountId>2345325</tns:accountId>. When i tried removing "[]", it comes as <accountId> only and  it is failing. Can someone please help me?

0 commentaires