nodejs实现webservice问题总结
库,工具
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问题总结相关推荐
- nodejs调用webservice接口(https)
之前对接的webservice接口都是发布在http上的,今天突然拿到一个接口地址是https的,意味着需要证书验证,利用https模块去请求接口有一个入参可以直接忽略证书,但是nodejs中调用we ...
- 【Nodejs】记一次图像识别的冒险
笔者的团队最近接到了一个有关图像识别的需求,本来应该由后端团队提供能力,native提供容器,前端团队仅负责一些"外围的形式工作",不过由于各种各样的原因,最后的结果变成了前端团队 ...
- 使用nodejs消费SAP Cloud for Customer上的Web service
Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice. 看一个具体例子:C4C里Individual Customers可以维护Social ...
- ionic云开发系列二之调用webservice
Part 1:怎么访问后台呢 在上一篇文章 ionic云开发系列一 已经介绍了在云上搭建ionic框架了,如果你还不知道怎么搭建ionic本地开发环境, 请移步ionic Getting Starte ...
- 【全栈接口测试进阶系列教程】精通api接口测试,接口分类,接口架构,http,webservice,dubbo接口协议,接口流程,接口工具,cookie,session,token接口鉴权原理以及实战
目录 一,[什么是接口测试?为什么要作接口测试] 1.接口的作用 2.为什么要做接口测试 3.接口都有哪些类型? 二,[接口测试的分类] 接口的分类: http和webservice接口区别: 三,[ ...
- nodejs与JAVA应对高并发的对比
脱离带宽内存与计算量来讨论并发是没有意义的. 因为并发数受带宽及其它很多因素影响,不能单就node.js来说并发多高. 如果无限带宽,无限计算力,无限存--你可以认为node.js并发数也是无限的,但 ...
- 【转】WebService中使用自定义类的解决方法(5种)
原址:http://www.cnblogs.com/lxinxuan/archive/2007/05/24/758317.html Demo下载:http://files.cnblogs.com/lx ...
- php高并发用什么框架,PHP有适用于高并发的WebService框架嘛?
现在的nodejs项目很火,ruby语言也出现了像sinatra,Padrino之类的webservice框架,PHP语言有没有类似的框架啊? 回复内容: 现在的nodejs项目很火,ruby语言也出 ...
- java工程webservice的应用案例
在java项目中使用webservice 今天学习webservice,主要参考了网络上的一些文章. 1.关于原理的介绍:个人认为这篇文章写得不错了,戳这里. 2.关于demo的编写:个人认为这篇文章 ...
最新文章
- Loadrunner压测时,出现的问题汇总
- OUYA游戏开发快速入门教程第1章了解OUYA及其设备
- golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
- CAM350 10.7 中文界面
- 综述 | 生成对抗网络(GAN)在图网络中的应用
- Python 辨异 —— __init__ 与 __new__
- python画二维图_使用python绘制二维图形示例
- 2017.7.27 bill的挑战 失败总结
- 关于加域后win7、win8的C:\不能够新建文件,报0X0070522错误的解决方式
- nginx访问静态文件
- oracle查看所有用户6,CSS_Oracle 用户权限查询,1.查看所有用户:nb - phpStudy
- python公式计算器_Python小白篇(二):Python计算器
- 桌面右击没有WPS新建WORD文档
- OE链面临区块链生态新机遇
- 冯诺依曼体系结构与操作系统的理解
- Solr基础教程之Query(四)
- OxyPlot在WinForm中的应用
- 2021.3Pycharm 和 Idea下载地址,Linux、Windows、macOS各版本
- 超实用,精心整理了34个Python+Excel+Word+PDF自动化库!
- Java静默调用虚拟打印机_静默虚拟打印机BullzipPDFPrinter
热门文章
- 未处理OleDbException - 找不到可安装的ISAM学习总结
- SpringBoot集成Redis实现排行榜
- redis(nosql数据库)
- 使用UML描述需求都实现的过程
- Lesson 008 —— python 初识
- [sh]top添加到crontab不生效问题解决
- 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学
- 前端模块化(一):模块化那些事儿
- 详说 Cookie, LocalStorage 与 SessionStorage
- scrollBarStyle- listview滑动条调整