Tag: 肥皂

节点肥皂无法读取未定义的属性“描述”

我正在使用node-soap来创build一个服务器。 尝试了不同的wsdls文件,一切正常,但这个似乎有点复杂,因为它指向一个模式文件。 我开始使用SOAPUI,并确定WSDL和XSD文件是否正常,所以我通过SOAPUI创build了一个模拟服务器,请求/响应在那里工作得很好。 所以我已经用node-soap把它连接到我的服务器,服务器启动没有问题,但是当我发送请求时,它抱怨parsing,但我已经检查了十几次,似乎没有问题。 错误types错误:无法读取SAXParser.p.onopentag中未定义的属性“描述” WSDL <definitions name="RpService" targetNamespace="https://www.examples.com/wsdl/HelloService.wsdl" xmlns:rp="http://www.examples.com/wsdl/HelloService.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsoma="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:documentation>BankID BUS RP interface Version: 4.0.0</wsdl:documentation> <wsdl:types> <xsd:schema xmlns:rp="http://www.examples.com/wsdl/HelloService.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://bankid.com/RpService/v4.0.0/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsoma="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://www.examples.com/wsdl/HelloService.wsdl" schemaLocation="file:///home/jnunesju/development/nodejs/soap-server/rpservice_v4.xsd"/> </xsd:schema> </wsdl:types> <wsdl:message name="RpServicePortType_Sign"> <wsdl:part element="rp:SignRequest" name="SignRequest"/> </wsdl:message> <wsdl:message name="RpServicePortType_Collect"> <wsdl:part element="rp:orderRef" name="orderRef"/> </wsdl:message> <wsdl:message name="RpServicePortType_FileSignResponse"> <wsdl:part element="rp:FileSignResponse" name="FileSignResponse"/> […]

使用带有Node.JS node-soap的DynamicsNAV WebService

我想通过一个小型的node.js应用程序使用Microsoft Dynamics NAV 2009中的WebService 。 服务本身工作正常,我正在使用一个C#应用程序 ,现在我想要获取数据到我的nodejs / expressjs应用程序,但是,我总是得到Invalid WSDL URL作为错误消息。 这是我的浏览器看到它的WSDL。 现在,我试图通过正常的和基本的身份validation来跟随node-soap连接,但是每次我得到一个Invalid WSDL URL错误。 以下是我为testing连接尝试的方法: var url = "http://navsrv:7047/DynamicsNAV2/WS/Produktiv/Page/WDCETA"; var auth = "Basic " + new Buffer("*********" + ":" + ****************").toString("base64"); soap.createClient(url, function(err, client) { console.log('Without basic out:'); if (err) { console.log('[ERROR] -> '); console.log(err); } console.log(client); }); soap.createClient(url, {wsdl_headers: {Authorization: auth} }, function(err, […]

使用node-soap传入一个int数组

我正在使用node-soap和一个服务,一切正常,但我需要发送一个int数组,我发现我只能发送第一个,因为我找不到正确的方式来build立一个JS对象来表示这个arrays。 我一直在看类似的问题,但我找不到我的问题的答案。 我需要生成一个XML属性,如下所示: <ns1:ArrayOfInts> <!–Zero or more repetitions:–> <arr:int>2904</arr:int> <arr:int>3089</arr:int> <arr:int>4531</arr:int> </ns1:ArrayOfInts> 通过传递一个包含该数组的对象: soapObject = { somefields, "ns1:ArrayOfInts": { Something goes here }, }; 任何想法如何创buildJS对象?

从Node.js多次调用Web服务

我正在构build一个原型Web应用程序,它响应具有查询参数的GET请求,并且调用3个不同的Web服务,所有Web服务都有不同的有效负载 – 2是ReST(一个返回二进制对象,一个图像,一个返回JSON),1是SOAP。 然后,我需要将这些数据中的每一个汇编到为原始GET请求返回的HTML页面中。 我是新来的asynchronous编程,我认为这是我出错的地方。 对于我使用的SOAP var locationRequest = require('request'); locationRequest(options1, function (error, response, output) { … } 对于ReST调用,我使用了两个类似的调用: var resourceJSON; var body2; var resourceHttp = require("https"); var resourceRequest = resourceHttp.request(resourceOptions, function (resourceRes) { var chunks2 = []; resourceRes.on("data", function (chunk2) { body2 += chunk2; }); resourceRes.on("end", function () { resourceJSON = JSON.parse(body2); }); resourceRes.on('error', […]

如何找出WCF服务的期望?

我正在使用Node.js和wcf.js模块(npm install wcf.js)我试图使用的服务是https://webservice.kareo.com/services/soap/2.1/ 我已经知道,这个https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?xsd=xsd0包含什么服务正在寻找收到,这些https://webservice.kareo.com/ services / soap / 2.1 / KareoServices.svc?wsdl = wsdl0是uri的提交给他们的。 如何在世界上弄清楚我应该如何构build请求? 这是wcf.js给我的例子 var BasicHttpBinding = require('wcf.js').BasicHttpBinding , Proxy = require('wcf.js').Proxy , binding = new BasicHttpBinding() , proxy = new Proxy(binding, " https://webservice.kareo.com/services/soap/2.1/") , message = '<Envelope xmlns=' + '"http://schemas.xmlsoap.org/soap/envelope/">' + '<Header />' + '<Body>' + '<GetData xmlns="http://tempuri.org/">' + '<value>GetAppointments</value>' + '</GetData>' + […]

在闭包中调用父函数

我有一个非常非常困难的时间试图在一个asynchronous肥皂请求中调用一个对象函数。 基本上归结为: function Thing(request, response) { this.foo = function() { console.log("this is foo"); } this.doThing = function() { // Get SOAP args args = { foo: this.request.cookies.foo }; // From the SOAP npm package library soap.createClient(function(err, client) { client.doSomething(args, function(err, result) { // Somehow call foo(); <— CAN'T FIND A WAY TO DO THIS }); […]

节点和肥皂服务消耗

尝试从Node进行SOAP调用。 我有一些架构名称问题,使服务调用成功。 这是现有的SOAP期望的请​​求 需要 <soapenv:Body> ***<ser:MyServiceName> *** <ser:request> <ecms:serviceId>123456789</ecms:serviceId <ecms:TransactionID>TestTransId</ecms:TransactionID> </ser:request> </ser:MyServiceName> </soapenv:Body> 这里是我的请求看起来像 我现在有什么 <soap:Body> ***<xsns:MyServiceName xmlns:xsns="http://example.com/ecms/services" xmlns="http://example.com/ecms/services">*** <ser:request> <ecms:serviceId>123456789</ecms:serviceId> <ecms:TransactionID>TestTransId</ecms:TransactionID> </ser:request> </xsns:MyServiceName> </soap:Body> 我的问题是如何编辑/更正元素 “ "<xsns:MyServiceName xmlns:xsns="http://example.com/ecms/services" xmlns="http://example.com/ecms/services">" 至 <ser:MyServiceName> 如上面预期的SOAP请求所示。 这是我有的代码 var args = {"ser:request":{"ecms:serviceId”:”123456789”, "ecms:TransactionID":"TestTransId"}}; soap.createClient(url, function(err, client) { client.MyServiceName(args, function(err, result, raw, soapHeaders) { console.log('LAST REQUEST '); console.log(client.lastRequest); console.log(result); }); […]

节点肥皂只向Mechanical Turk发送“帮助”请求?

我正在尝试使用节点肥皂与Amazon Mechanical Turk进行通信。 我用这个wsdl初始化soap客户端,但是当我尝试调用client.<SomeOperation>(…)对于Mechanical turk API中列出的任何操作 ,我发现我得到的响应没有包含API的结果呼叫。 API文档说响应应该包含一个“Result元素” ,但是我发现我得到的结果看起来像这样: <HelpResponse xmlns="http://requester.mturk.amazonaws.com/doc/2014-08-15"> <OperationRequest> <RequestId>(something)</RequestId> </OperationRequest> <Information> <Request> <IsValid>True</IsValid> </Request> <OperationInformation> <Name>Please see our online documentation at http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=28</Name> </OperationInformation> </Information> </HelpResponse> 经过进一步的调查,我发现问题出在我尝试使用它发出API请求时node-soap发送的内容。 当我尝试调用RegisterHITType ,而不是发送一个<RegisterHITType>元素,它似乎发送某种types的<Help>元素,看起来像这样: <Help xmlns="http://requester.mturk.amazonaws.com/doc/2014-08-15"> <Title>(something)</Title> <Description>(something)</Description> <Reward>(something)</Reward> <AssignmentDurationInSeconds>(something)</AssignmentDurationInSeconds> <AWSAccessKeyId>(something)</AWSAccessKeyId> <Timestamp>(something)</Timestamp> <Service>AWSMechanicalTurkRequester</Service> <Signature>(something)</Signature> </Help> 为什么它发送这个而不是预期的API请求? 这是一个小故障的结果,还是我误解如何使用节点肥皂? 有没有办法解决这个问题,还是我需要通过其他方式来研究使用Mechanical Turk API?

如何在node.js中使用WCF soap web服务

我尝试了很多使用节点模块wcf.js的例子。 但是得不到合适的结果。 我正在使用下面的url https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?wsdl 任何能够通过代码解释我的人都会很有帮助。 我想知道如何访问node.js中的wsdl 谢谢。

使用npm请求形成一个SOAP API的post

我正试图做到这一点: POST /oms/order.asmx HTTP/1.1 Host:myserver.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://shipping_software/AddOrder" 通过做这个: var newOrder = buildOrder(orderInfo); var soapOptions = { uri: '/oms/order.asmx', headers: { 'Content-Type': 'text/xml', 'charset': 'utf-8', 'Content-Length': newOrder.length.toString(), 'SOAPAction': 'http://shipping_software/AddOrder', 'Host': 'myserver.com', 'Connection': 'keep-alive' }, method: 'POST', body: newOrder //New order is properly formed xml as a String } request(soapOptions, function(err, response) […]