1

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です。

リクエストをどのように構成するのか、世界でどのように理解できますか?これは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)
});
4

2 に答える 2

2

wsdl によると、このサービスは BasicHttpBinding を使用します。つまり、ws-secrutiy またはアドレス指定は使用されません。この場合、wcf.js はrequestを使用するだけではあまり価値がありませんが、それでも wcf.js を使用できます。url、soapaction (proxy ctor の 2 番目のパラメーター)、soap の 3 つの値を正しく設定する必要があります。このサービスに対して ac# クライアントを生成し、クライアントが動作することを確認してから、フィドラーをセットアップしてクライアントを「http://localhost:8888」にポイントすることで、3 つの値すべてを取得することをお勧めします。それらを構成します。

于 2012-06-21T22:10:29.657 に答える
1

私は wcf.js の経験はありませんが、リクエストを行うために SOAP エンベロープをどのように構築する必要があるかを確認する必要がある場合は、wcftestclientを起動してサービスに接続することをお勧めします。接続したら、任意の操作を呼び出して、SOAP メッセージを表示できます。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>
于 2012-06-21T22:10:50.877 に答える