我有一个用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?
感谢任何形式的帮助。