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

2024-02-16

我刚刚开始使用 NodeJS,并且正在深入研究使用 SOAP 服务milewise 的节点肥皂 https://github.com/milewise/node-soap#readme。我使用基本的电子邮件地址验证 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:"[email protected] /cdn-cgi/l/email-protection"}, function(err, result){
            console.log(result);
    });
});

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

{ input: { 'request[]': 'xs:string' }, output: { 'ValidateResult[]': 'xs:boolean' } }

但是,当我将参数作为对象发送时:{request:"[email protected] /cdn-cgi/l/email-protection"}

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


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

var soap = require('soap');

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

var args = {"tns:request":"[email protected] /cdn-cgi/l/email-protection"};

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);
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Node.js 中使用 node-soap 通过 Soap 发送参数 的相关文章

  • Node.js 应用程序中的系统托盘图标

    这是我的 node js 应用程序中需要的 系统托盘图标 在应用程序工作期间更改此图标 单击图标后的菜单 创建带有登录 密码字段和确认按钮的窗口 这是我发现的 https github com appjs appjs https githu
  • 带标签的 Material-ui 文本字段[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我如何在material ui lib中制作带有标签的文本字段 寻找这样的东西 https github com callem
  • 文件太大错误处理 Nodejs Express Multer

    我将 multer 与 ExpressJS 一起使用 我想将文件上传限制为 0 5 MB var limits fileSize 0 5 1024 1024 var upload multer dest public uploads lim
  • Android 上的 React Native:无法运行程序“node”:错误=2,没有这样的文件或目录

    编辑 我不确定我采取了哪些步骤来解决此问题 并且不再看到此错误消息 因此我无法测试下面的解决方案 请单独尝试 因为不同的答案似乎适用于不同的人 iOS 版本工作正常 但在我的 Mac 上运行 Android Studio 时出现以下 Gra
  • 提交后如何重置表单?

    我有一个简单的表格 假设它需要一个电子邮件地址 提交表单后 消息堆栈会通知用户其地址已成功提交 问题是 提交地址后 带有电子邮件的表单字段仍然包含用户输入的电子邮件地址 我该如何重置该字段 我必须为此使用 JavaScript 吗 谢谢 w
  • 即使 WebPack 构建工作正常,VS Code 显示未找到模块

    我的 VS Code 说它找不到导入 即使我的 WebPack 构建仍然有效 这是进口 import as tf from tensorflow tfjs 以及来自 VS Code 的消息 找不到模块 tensorflow tfjs 您的意
  • .map() Javascript ES6 地图?

    你会怎么做 本能地 我想做 var myMap new Map thing1 1 thing2 2 thing3 3 wishful ignorant thinking var newMap myMap map key value gt v
  • Firestore onSnapshot() 方法多次触发

    我有一个带有多个路由和 vuex 的 vue cli 4 应用程序 Firestore 数据库已成功连接 我的应用程序立即反映从 Firestore 控制台应用于数据库的修改 在离开包含与 Firestore 同步 的组件的路线然后返回后
  • $index 中的 AngularJS 数字

    举例来说 我有以下代码 伪 div index div 结果将是 1 2 3 4 5 6 我怎样才能改变上面的代码以便打印索引 001 002 003 004 005 006 以便索引打印为 3 位数字 您可以使用过滤器轻松完成此操作 首先
  • 我可以检测焦点来源吗? (Javascript、jQuery)

    快速提问 是否可以检测焦点是来自鼠标单击还是来自焦点事件的选项卡 我想如果没有 我将不得不在同一元素上使用单击句柄来确定源 但我更喜欢通过焦点事件的方式 Thanks Gausie 可能无法 100 工作 但如果没有直接的方法 那么你不能直
  • 最有用的 jQuery 原生 API 函数

    前 5 10 个最常用的 jQuery 本机 API 函数是什么 请不要建议 jQuery 函数本身 因为毫无疑问这是最常用的函数 如果可能的话 还请提供它们所涵盖的场景 提出这个问题的原因是我尝试创建一个类似 jQuery 的 API充足
  • 从右到左的语言和编程问题

    我正在创建一个网络文本编辑器 它使用我创建的新语言 如 BBcode 这种标记语言将采用阿拉伯语 但我面临这些问题 在所有 IDE 和编辑器中将英语和阿拉伯语文本混合在同一行中确实很困难 因为会发生奇怪的事情 单词和字符的顺序发生变化 使用
  • 如何在 Node 中使用 Mysql2 使用 async 和 pool 获取 MySQL 的 insertId?

    我正在尝试将 async wait 与 mysql2 和池一起使用 但我认为我做错了 下面是我的代码 正如我所说 我不确定我是否在这里做事 const pool mysql createPool host localhost user ro
  • Karma 测试报告运行速度快,但实际上运行速度慢

    最好的解释是a video https youtu be Zwwi01JuPrQ 或参见下面的 gif 您会注意到 Karma 进度报告器报告测试只需要几毫秒 但显然需要相当长的时间 我在推特上提到了这一点 https twitter co
  • 传单地图显示为灰色

    我正在启动 leaflet js快速开始 http leafletjs com examples quick start html但我的地图显示为灰色 我缺少什么吗 脚本 js var leafletMap L map leafletMap
  • 如何从 JavaScript 中的 URL 中提取主机?

    捕获域直到结束字符 我需要一个捕获的正则表达式example com在所有这些中 example com 3000 example com pass gas example com example com 如果您确实有有效的 URL 那么这
  • 将纬度/经度转换为 X/Y,以便在美国地图图像上进行阿尔伯斯投影

    我正在尝试使用 C 或 Javascript 将纬度 经度转换为 X Y 坐标 以将带有 CSS 的 div 左 上 定位到美国地图的背景图像上 美国的标准地图投影是阿尔伯斯投影 如下所示 但 StackOverflow 仅提供参考基本墨卡
  • mongodb/node.js 中单文档并发读写操作的问题

    编辑 6 15我尝试运行相同的代码 在调用之前添加延迟 doSafePush 再次收到 ConcurrencyDBError 时 即执行return when resolve wait delay 35 then function doSa
  • JavaScript IDE/编译器

    现在 我希望你们中的一些人能够理解我的要求 我是编程新手 我在 Codecademy com 上了解了 JavaScript 我使用 labs codecademy com 来编写 JavaScript 但它有限制 对于编程新手来说 我可以
  • Google Hangouts 扩展程序如何创建面板窗口?

    The Doc http code google com chrome extensions windows html说如果你想创建一个面板窗口 你应该使用 chrome windows create type panel function

随机推荐

  • 如何在 Objective-C 中使用 Swift 非 NSObject 子类

    我在 Objective C 项目中使用 Swift 时遇到一些问题 例如 我使用以下库 https github com Hearst DD ObjectMapper https github com Hearst DD ObjectMa
  • jQuery 将浏览器名称添加到 css-class 中

    我使用 jQuery 来检测用户浏览器代理 然后将浏览器名称作为 css 类添加到正文中 这对于 webkit 和 mozilla 来说就像魔术一样 但是对于 msie 它失败了 但不知道为什么 对于msie 我不仅要添加 msie 还要添
  • 什么是 YUV 格式? (从一个不会玩的初学者的角度来看)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 视频质量指标称为VMAF https github com Netflix vmaf由 Netflix 评估 YUV 格式的视频 但什么是
  • Web 套接字会让 ajax/CORS 过时吗?

    在所有 Web 浏览器中使用 Web 套接字会使 Ajax 过时吗 因为如果我可以使用 Web 套接字来实时获取数据和更新数据 为什么还需要 ajax 即使我在应用程序启动时使用 ajax 只获取一次数据 我仍然可能想看看该数据在一段时间后
  • 如何从 iOS 上的音频文件中提取元数据

    我正在尝试使用 AVFoundation 框架从 mp3 和 m4a 文件中提取元数据 这是测试代码 void printMetadataForFileAtPath NSString path NSURL url NSURL fileURL
  • 使用 SQL 检查列是否包含文本

    我有一个名为studentID 但我有millions记录 并且应用程序以某种方式输入了一些任意文本在专栏中 我如何搜索 SELECT FROM STUDENTS WHERE STUDENTID CONTAINS TEXT 将数据库建模问题
  • 为什么 CSS 中引入了边距折叠规则?

    这套巧妙的规则什么时候可以发挥作用 它们打破了盒子模型的简单性 当您将不同的布局组合在一起时 它们会带来无限的麻烦 那么原因是什么呢 Rules http www w3 org TR css3 box collapsing margins供
  • ftp_ssl_connect 和 ftp_nlist

    我需要连接到远程系统以获取一些文件 远程系统的规格提到 所需的协议是 SFTP SSH 文件传输协议 端口号是22 首先 我使用 FTP 客户端应用程序尝试使用给定的凭据登录新服务器 起初我 遵循系统的规格 使用了通过 SSH 进行 SFT
  • JOptionPane 变灰一键

    我需要使用一个JOptionPane给用户两个选择 根据之前的操作 可能需要禁用其中一个按钮 是否可以与JOptionPane能够将其中一个按钮设置为禁用或启用吗 我怎样才能做到这一点 如果您使用 JButtons 这很容易 public
  • 在 PowerShell 中将控制台设置为最顶层

    因此 虽然有很多关于如何设置的建议forms最上面 我找不到任何可以让我的控制台在最上面运行的东西 所以我的问题是 如何让我的控制台在脚本期间运行在最上面 这需要一些 NET 互操作 如本博客中所述 TechEd 2012 中的脚本 第 1
  • worklight ant 任务应用程序部署 - WL 控制台安全性处于活动状态时出现未经授权的错误

    我正在尝试使用提供的 ant 任务 app deployer 将应用程序部署到 WL Server v5 0 5 这是我使用的简单构建文件
  • Pandas - 将内存中作为字符串存储的csv读取到数据帧

    将逗号分隔的文本存储在如下所示的 var 中 data Class Name Long Lat A ABC11 139 6295542 35 61144069 A ABC20 139 630596 35 61045559 A ABC03 1
  • Pandas 层次排序

    我有一个类别和金额的数据框 可以使用冒号分隔的字符串将类别无限嵌套到子类别中 我希望按金额降序排序 但以分层类型的方式如图所示 我需要如何排序 CATEGORY AMOUNT Transport 5000 Transport Car 490
  • 为什么 emma 不完全覆盖 finally 块?

    我不明白为什么艾玛没有为 finally 块提供完整的代码覆盖率 我制作了一个简短的示例程序来演示这一点 当我执行该程序时 它显示 try finally 所以我不明白为什么finally被标记为红色 未执行 而 finally print
  • 更改项目目标框架后应用程序设置错误

    在我的应用程序中 我正在使用用户设置 如下所述here http msdn microsoft com en us library aa730869 28v vs 80 29 aspx 然后我意识到在 VS 2010 中我使用的是 NET
  • 混合文件和循环[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在编写一个脚本 该脚本记录另一个程序的错误 并在遇到错误时从中断处重新启动该程序 无论出于何种原因 该程序的开发人员
  • 如何在 EF 查询中执行日期比较?

    请帮忙 我试图弄清楚如何在 linq 查询中使用 DATE 或 DATETIME 进行比较 例子 如果我想要今天之前开始的所有员工姓名 我会在 SQL 中执行以下操作 SELECT EmployeeNameColumn FROM Emplo
  • 如何从 proguard 构建中排除 R*.class 文件

    我距离制定此处描述的方法仅一步之遥 使用 Scala 2 8 Trunk 构建面向 Android https stackoverflow com questions 2761443 targeting android with scala
  • Django - 反向查询名称冲突

    我在 Django 中放置了一个循环外键 这导致了名称冲突 我不明白为什么会发生冲突或如何最好地补救 这是我第一次在模型中进行循环引用 所以我不确定这是否是问题的根本原因 对于以下情况 class Supplier models Model
  • 在 Node.js 中使用 node-soap 通过 Soap 发送参数

    我刚刚开始使用 NodeJS 并且正在深入研究使用 SOAP 服务milewise 的节点肥皂 https github com milewise node soap readme 我使用基本的电子邮件地址验证 SOAP API 作为我的测