如何找出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>' + '</Body>' + '</Envelope>' proxy.send(message, "http://www.kareo.com/api/schemas/KareoServices/GetAppointments", function(response, ctx) { console.log(response) }); 

根据wsdl该服务使用BasicHttpBinding,这意味着没有ws-secrutiy或寻址使用。 在这种情况下,wcf.js在使用请求之前不会给你带来太多的附加值,但是你仍然可以使用wcf.js。 你需要正确设置3个值 – url,soapaction(代理ctor中的第二个参数)和肥皂。 我build议通过生成ac#客户端到这个服务,validation客户端的工作,然后设置提琴手,并指向客户端“http:// localhost:8888”,所以你会看到在提琴手的所有3个值,并可以configuration它们。

我对wcf.js没有任何经验,但是如果你只是需要看看你应该如何构build你的SOAP信封来提出请求,我会build议你启动wcftestclient并连接到服务。 连接后,您可以调用任何操作并查看肥皂信息。 这是GetAppointments操作的空请求。

 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://www.kareo.com/api/schemas/KareoServices/GetAppointments</Action> </s:Header> <s:Body> <GetAppointments xmlns="http://www.kareo.com/api/schemas/"> <request xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <RequestHeader i:nil="true" /> <Fields i:nil="true" /> <Filter i:nil="true" /> </request> </GetAppointments> </s:Body> </s:Envelope>