库,工具

node-soap
soapui

创建

注意args里参数顺序

const soap = require('soap');
let URL = "你的wsdl路径,可以是url或者本地文件";
// 注意参数顺序!!!!!!!!!
let args = {key1: val1,key2: val2
};
// promise创建
let client = await soap.createClientAsync(URL);// callback创建
soap.createClient(url, function(err, client) {client.MyFunction(args, function(err, result) {console.log(result);});
});

个人喜欢promise形式,之后调用其它函数都是可以两种方式实现的,若是异步形式,需要在你调用的函数名后添加 "Async"。

调用

参数数据只有一层没什么特殊,如:

args = {key1: val1,key2: val2
}

若是参数里又套了一层,node-soap是不会根据wsdl自动生成带有namespace prefix的数据,传到服务器之后会解析xml失败。

如:

let val2: Array<dataType> = [{key3: val3}];
let args = {key1: val1,key2: val2
}

这个时候就需要在传入数据时做些额外工作,修改为:

let val2: Array<dataType> = [{key3: val3}];
let args = {key1: val1,key2: {dataType: val2}
}

上面这种dataType是生成xml时,其类型在xml中有声明;若是没有声明,就又是另一中写法,如:

// dataType或namespace prefix在生成xml未声明
let val2: Array<dataType> = [{key3: val3}];
let args = {key1: val1,key2: val2
}

需改写为(此处用使用Array<string>是参考soapui生成的namespace prefix,具体其它类型实现应该可通用);

let val2: Array<string> = [val3,val4];
let args = {attributes: {'xmlns:arr': 'http://schemas.microsoft.com/2003/10/Serialization/Arrays'},key1: val1,key2: {"arr:string": val2}
}

https://stackoverflow.com/que...

nodejs实现webservice问题总结相关推荐

  1. nodejs调用webservice接口(https)

    之前对接的webservice接口都是发布在http上的,今天突然拿到一个接口地址是https的,意味着需要证书验证,利用https模块去请求接口有一个入参可以直接忽略证书,但是nodejs中调用we ...

  2. 【Nodejs】记一次图像识别的冒险

    笔者的团队最近接到了一个有关图像识别的需求,本来应该由后端团队提供能力,native提供容器,前端团队仅负责一些"外围的形式工作",不过由于各种各样的原因,最后的结果变成了前端团队 ...

  3. 使用nodejs消费SAP Cloud for Customer上的Web service

    Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice. 看一个具体例子:C4C里Individual Customers可以维护Social ...

  4. ionic云开发系列二之调用webservice

    Part 1:怎么访问后台呢 在上一篇文章 ionic云开发系列一 已经介绍了在云上搭建ionic框架了,如果你还不知道怎么搭建ionic本地开发环境, 请移步ionic Getting Starte ...

  5. 【全栈接口测试进阶系列教程】精通api接口测试,接口分类,接口架构,http,webservice,dubbo接口协议,接口流程,接口工具,cookie,session,token接口鉴权原理以及实战

    目录 一,[什么是接口测试?为什么要作接口测试] 1.接口的作用 2.为什么要做接口测试 3.接口都有哪些类型? 二,[接口测试的分类] 接口的分类: http和webservice接口区别: 三,[ ...

  6. nodejs与JAVA应对高并发的对比

    脱离带宽内存与计算量来讨论并发是没有意义的. 因为并发数受带宽及其它很多因素影响,不能单就node.js来说并发多高. 如果无限带宽,无限计算力,无限存--你可以认为node.js并发数也是无限的,但 ...

  7. 【转】WebService中使用自定义类的解决方法(5种)

    原址:http://www.cnblogs.com/lxinxuan/archive/2007/05/24/758317.html Demo下载:http://files.cnblogs.com/lx ...

  8. php高并发用什么框架,PHP有适用于高并发的WebService框架嘛?

    现在的nodejs项目很火,ruby语言也出现了像sinatra,Padrino之类的webservice框架,PHP语言有没有类似的框架啊? 回复内容: 现在的nodejs项目很火,ruby语言也出 ...

  9. java工程webservice的应用案例

    在java项目中使用webservice 今天学习webservice,主要参考了网络上的一些文章. 1.关于原理的介绍:个人认为这篇文章写得不错了,戳这里. 2.关于demo的编写:个人认为这篇文章 ...

最新文章

  1. Loadrunner压测时,出现的问题汇总
  2. OUYA游戏开发快速入门教程第1章了解OUYA及其设备
  3. golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
  4. CAM350 10.7 中文界面
  5. 综述 | 生成对抗网络(GAN)在图网络中的应用
  6. Python 辨异 —— __init__ 与 __new__
  7. python画二维图_使用python绘制二维图形示例
  8. 2017.7.27 bill的挑战 失败总结
  9. 关于加域后win7、win8的C:\不能够新建文件,报0X0070522错误的解决方式
  10. nginx访问静态文件
  11. oracle查看所有用户6,CSS_Oracle 用户权限查询,1.查看所有用户:nb - phpStudy
  12. python公式计算器_Python小白篇(二):Python计算器
  13. 桌面右击没有WPS新建WORD文档
  14. OE链面临区块链生态新机遇
  15. 冯诺依曼体系结构与操作系统的理解
  16. Solr基础教程之Query(四)
  17. OxyPlot在WinForm中的应用
  18. 2021.3Pycharm 和 Idea下载地址,Linux、Windows、macOS各版本
  19. 超实用,精心整理了34个Python+Excel+Word+PDF自动化库!
  20. Java静默调用虚拟打印机_静默虚拟打印机BullzipPDFPrinter

热门文章

  1. 未处理OleDbException - 找不到可安装的ISAM学习总结
  2. SpringBoot集成Redis实现排行榜
  3. redis(nosql数据库)
  4. 使用UML描述需求都实现的过程
  5. Lesson 008 —— python 初识
  6. [sh]top添加到crontab不生效问题解决
  7. 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学
  8. 前端模块化(一):模块化那些事儿
  9. 详说 Cookie, LocalStorage 与 SessionStorage
  10. scrollBarStyle- listview滑动条调整