如何解决节点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 举报,一经查实,本站将立刻删除。