资讯专栏INFORMATION COLUMN

nodejs实现webservice问题总结

aikin / 3075人阅读

摘要:库,工具创建注意里参数顺序你的路径,可以是或者本地文件注意参数顺序创建创建个人喜欢形式,之后调用其它函数都是可以两种方式实现的,若是异步形式,需要在你调用的函数名后添加。

库,工具

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 = [
        {
            key3: val3
        }
    ];
let args = {
    key1: val1,
    key2: val2
}

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

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

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

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

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

let val2: Array = [
        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...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102183.html

相关文章

  • My Toolkit of Node.js

    摘要:它基于格式,在绝大多数情况下,使用协议传输请求。由它加密的文件可在所有支持的操作系统和处理器上进行转移。后话本文的描述及用语,仅基于本人目前的水平而写,难免有所局限和措辞不当之处。 原文链接:BlueSun | My Toolkit of Node.js Cheerio Fast, flexible, and lean implementation of core jQuery des...

    leeon 评论0 收藏0
  • WebService就是这么简单

    摘要:它使用方式,接收和响应外部系统的某种请求。回顾我们在学习基础网络编程章节已经知道了这么一个连接了。使用指定名称的命名空间。名词简单对象访问协议作为一个基于语言的协议用于有网上传输数据。以的根元素出现。代理这么一个概念就更加清晰了。 WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求...

    SwordFly 评论0 收藏0
  • SpringBoot 使用CXF 集成WebService

    摘要:启动后我们直接输入项目地址指定的服务名会看到生成的。测试在这就不写了,大家可以使用生成客户端,或者直接使用发送格式数据进行请求。总结使用集成开发很简单,不用在单独的部署到外部上,这为我们熟悉开发的同学带了很好的体验。 1、写在前面 WebService 对我来说既熟悉又陌生,已经将近六七年没有看到过他了, 具体的介绍我就不多少了, 想了解的百度百科下说的很详细。 之所以突然研究WebS...

    miracledan 评论0 收藏0
  • 实现一个spring webservice服务端四:服务端、客户端以及httpclient调用spr

    摘要:执行结果如下中华田园犬测试我认为所有使用协议的,都能使用测试。下面是我写的测试代码旺财需要增加一个包测试结果返回值如下中华田园犬写法稍微有点麻烦的是,需要拼接请求参数,参数少的话还好,多的话就很烦不过这种方法不用生成一大堆客户端代码。 经过前段时间的学习,已经实现一个有返回值的spring-ws服务,那接下来,就要试试能不能通过不同方式的调用,要实现一下几种方式的测试: spring...

    oneasp 评论0 收藏0
  • spring boot开发soap webservice

    摘要:本文介绍如何在中开发接口,以及接口如何同时支持和两种协议。该功能很简单,就是通过一个人的姓名查询这个人的详细信息。就是关键,如本次请求报文如下就是,对应。测试使用进行测试,通过地址导入文件进行测试。测试这样就实现了和同时提供的目的。 介绍spring boot web模块提供了RestController实现restful,第一次看到这个名字的时候以为还有SoapController,...

    Ashin 评论0 收藏0

发表评论

0条评论

aikin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<