如何处理SOAP请求Payload并在节点js

时间:2016-08-26 07:05:08

标签: javascript node.js web-services http soap

我有一个用C#编写的SOAP Web服务,可以使用SOAP Action和ReplyAction Headers处理SOAP请求和响应。

[OperationContract(Action = "http://www.example.com/schemas/xxxx/xxxx/service/authenticationagent/2013/03/01/IAuthenticationAgentService/GetPostPromptResult", ReplyAction = "http://www.hp.com/schemas/imaging/OXPd/service/authenticationagent/2013/03/01/IAuthenticationAgentService/GetPostPromptResult")]
            [XmlSerializerFormat]
            PostPromptResult GetPostPromptResult(string authenticationContextId, string languageCode, string serverContextId);

我需要使用Javascript实现相同的Web服务,并使用节点js服务器提供服务。

我能够处理REST Web服务请求和响应,因为它们有一个要命中的URI。

[OperationContract]
        [WebInvoke(UriTemplate = "/PostPromptAuthentication", Method = "POST", RequestFormat = WebMessageFormat.Xml)]
        [XmlSerializerFormat]
        AuthenticationResult GetPostPromptResult(AuthenticationRequest postPromptQuery);

在节点js服务器中我可以这样做,

 if (request.url.match('PostPromptAuthentication')) {
                    var data = fs.readFileSync('PostPromptAuthentication.xml', 'utf-8');
                    if(!validationResult)
                    {
                        data = data.replace('succeeded','failed');
                    }
                    response.writeHead(200);
                    response.end(data);

对于SOAP,我没有要点击的URI。我只有请求和响应XML有效负载,它们的标题中包含SOAP Action和Reply Action。

如何在节点js中处理这些SOAP请求?

是否有像

这样的东西
 request.SOAPAction.match('') in javascript?

感谢任何形式的帮助。

0 个答案:

没有答案