微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

节点soap从方法中删除xmlns属性

如何解决节点soap从方法中删除xmlns属性

我正在使用 npm soap 包来处理 soap 网络服务。

显然它是 Node.JS 生态系统中使用最广泛的 soap 客户端,而且我正在使用一个相当成熟的商业网络服务,所以我不知道谁是“错误的”(或不符合标准),但我有我正在调用方法的 xml 标记中的 xmlns 属性存在问题。

我们生成这样的请求:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tns="https://webservice.com"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/">
    <soap:Body>
        <MethodName xmlns="https://webservice.com">
        .......
        </MethodName>
    </soap:Body>
</soap:Envelope>

但是服务器拒绝了这个,因为它只期待 <MethodName> 而不是 <MethodName xmlns="...">。如何从请求中删除属性?理想情况下,通过传递给客户端的选项,但我也愿意使用另一个肥皂客户端。

我也可以使用普通的 http 客户端并手动构建 xml,但如果可能,我正在寻找更高级别的替代方案。

解决方法

显然,strong-soap 是重写的,或者至少有一个类似的 API,所以 soap 虽然它的每月下载量较少,但它拥有更强大的社区(根据他们各自的支持/社区聊天的活动来判断) ) 并且它不会在方法标记中注入 xmlns 属性。

所以如果其他人被 soap 卡住了,试试 strong-soap 吧!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。