gpt4 book ai didi

javascript - 使用 node-soap 在 Node.js 中通过 Soap 发送参数

转载 作者:数据小太阳 更新时间:2023-10-29 05:08:13 25 4
gpt4 key购买 nike

我刚刚开始使用 NodeJS,我正在深入研究使用 milewise's node-soap 与 SOAP 服务对话.我使用基本的电子邮件地址验证 SOAP API 作为我的测试用例。

我似乎不明白格式化参数列表的正确方法。

我的 SOAP 客户端代码:

    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);
});
});

client.describe() 命令告诉我 API 希望如何格式化其输入,以及它将如何返回其输出。是这样说的:

{ 输入:{ 'request[]': 'xs:string' },
输出:{ 'ValidateResult[]': 'xs:boolean' } }

然而,当我将参数作为对象发送时:{request:"my@emailaddress.com"}

我觉得我的问题在于我如何定义参数对象...request[] 中的括号是什么意思?

最佳答案

如果您在请求参数上添加 namespace ,它应该可以工作。这是示例代码。

var soap = require('soap');

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

var args = {"tns:request":"my@emailaddress.com"};

soap.createClient(url, function(err, client){
client.EmailValidationService.BasicHttpBinding_IEmailValidationService.Validate(args, function(err, result){
if (err) throw err;
console.log(result);
});
});

但是,它返回“访问被拒绝”。

我使用 soapUI 来测试这个网络服务,它返回相同的结果。

我尝试了另一个网络服务,它工作正常。

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);
});
});

关于javascript - 使用 node-soap 在 Node.js 中通过 Soap 发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com