Articles of soap

Nodejs Soap api调用返回“WSDL或包含的意外根元素”

我正在尝试使用node-soap模块访问web api,但是每次运行代码时,我都会收到以下错误:“WSDL的意外根元素或包含” var soap = require('soap'); var xml2js = require('xml2js'); var url = 'https://webservice.servcei.com/LoginXML'; var params = { Username:'webservice', Password:'Test123' }; soap.createClient(url,params,function(err,client){ console.log(err); });

在Node.js SOAP客户端中设置授权

我想通过Node.js中的SOAP客户端访问WSDL服务。 我用肥皂节点模块。 但我无法find任何文件来设置用户名和密码。 我不打算创buildSOAP服务器,我只是希望SOAPClient类似于PHP的SoapClient,使用它我应该能够访问WSDL服务。 更新 : 我已经分叉和定制源支持这个functionhttps://github.com/sincerekamal/node-soap

SOAP在Node.js中

当然,你会告诉我,SOAP是不推荐使用的,所有的,我都被迫使用它。 现在,我已经尝试使用冲洗模块( https://github.com/marcgreenstock/douche ),但是当我这样做时(WSDLurl没问题,实际上我正在尝试在test/index.js处提供的示例test/index.js ) Client.wsdl.parse(function(wsdl) { console.log(wsdl); }); 错误是: /usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74 attrs.forEach(function(url,index) { ^ TypeError: Object #<Object> has no method 'forEach' at [object Object]._read_namespaces (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74:9) at /usr/local/lib/node_modules/douche/lib/douche/wsdl.js:20:10 at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:102:7) at IncomingMessage.emit (events.js:81:20) at HTTPParser.onMessageComplete (http.js:133:23) at Socket.ondata (http.js:1226:22) at Socket._onReadable (net.js:683:27) at IOWatcher.onReadable [as callback] (net.js:177:10) 关于so​​ap( https://github.com/milewise/node-soap )我甚至不能用NPM安装它,它会失败: > node-expat@1.3.2 install /home/warorface/node_modules/soap/node_modules/node-expat > […]

我如何强制命名空间前缀使用?

我想消费一个SOAP Web服务,但WSDL是有点破,所以我必须做一些定制node-soap 。 我想要的理想SOAP信封就是这个: <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <getImagesDefinition xmlns="http://services.example.com/"/> </Body> </Envelope> 到目前为止,这是我必须调用服务的nodejs代码: var soap = require('soap'); var url = 'http://www.example.com/services/imagesizes?wsdl'; soap.createClient(url, function(err, client) { client.setEndpoint('http://www.example.com/services/imagesizes'); client.getImagesDefinition(null, function(err, result) { console.log(result); }); console.log(client.lastRequest) }); 我必须手动设置端点,因为它在WSDL文件中被破坏 打印client.lastRequest得到的信封是这样的: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://services.example.com/"> <soap:Body> <getImagesDefinition /> </soap:Body> </soap:Envelope> 我知道,如果我可以强制命名空间前缀的身体有<tns:getImagesDefinition />而不是<getImagesDefinition />请求完美的作品。 有什么办法强迫我? 我读了文档,说tns是一个默认的忽略命名空间,所以我试图通过这样做来改变: var options = { ignoredNamespaces: { […]

肥皂节点是parsingJSON到XML错误

在Nodejs中使用Soap模块(通过loopback-connector-soap),我试图将我的soap请求转换成json到xml,但是我有一些问题… 这是什么: <ns:UserDefinedFields> <ns:UserDefinedField> <ns:displayName>Campaign?</ns:displayName> <ns:fieldValue>Yes</ns:fieldValue> </ns:UserDefinedField> </ns:UserDefinedFields> <ns:UserDefinedFields> <ns:UserDefinedField> <ns:displayName>Anticipated Use</ns:displayName> <ns:fieldValue>6</ns:fieldValue> </ns:UserDefinedField> 它应该是什么: <ns:UserDefinedFields> <ns:UserDefinedField> <base:displayName>Campaign?</base:displayName> <base:fieldValue>Yes</base:fieldValue> </ns:UserDefinedField> <ns:UserDefinedField> <base:displayName>Anticipated Use</base:displayName> <base:fieldValue>6</base:fieldValue> </ns:UserDefinedField> </ns:UserDefinedFields> 应该只有一个<ns:UserDefinedFields> 而且应该是<base:fieldValue>而不是<ns:fieldValue> 任何build议将是超级有益的! 谢谢! XML: { … "UserDefinedFields": [ { "displayName": "Campaign?", "fieldValue": "Yes" }, { "displayName": "Anticipated Use", "fieldValue": 6 } ] … } XSD: … <xs:element name="UserDefinedFields" […]

在调用fedex服务时发出Nodejs Soap模块

我正在使用nodejs soap模块来调用fedex服务,但得到一个错误: { "HighestSeverity": "ERROR", "Notifications": [ { "Severity": "ERROR", "Source": "prof", "Code": "1000", "Message": "Authentication Failed" } ], "Version": { "ServiceId": {}, "Major": {}, "Intermediate": {}, "Minor": {} } } 以下是我的nodejs代码: var data = {}; data["WebAuthenticationDetail"] = { "UserCredential": { "Key": developer_key,//getProperty('key'); "Password": password } }; //console.log(JSON.stringify(data)); data['ClientDetail'] = { 'AccountNumber': account_number,//getProperty('shipaccount'); 'MeterNumber': meter_number//getProperty('meter'); […]

你如何使Node.js与SOAP服务对话?

我似乎无法find任何这方面的例子。 我在Node上看到一个名为“Newspaper Club – 使用node.js将令人讨厌的SOAP接口包装到InDesign Server中”的列表,但是我没有看到任何代码。 谢谢。 编辑:我猜我可以find任何JavaScript / SOAP工具包,并将其移植到节点。 任何build议,一个好的?

Node.js:如何使用SOAP XML Web服务

我想知道使用node.js来使用SOAP XML Web服务的最佳方式是什么 谢谢!