【问题标题】:How to get two responses for a single request in soap web services如何在肥皂网络服务中为单个请求获得两个响应
【发布时间】:2019-04-23 22:09:47
【问题描述】:

我需要来自肥皂网络服务的两个响应,我应该得到第一个响应,并且在基于第一个响应中的元素(在我的例子中是 ResponseCode)一段时间后,第二个响应应该来。以下是我需要来自肥皂网络服务的示例 2 响应

Response1:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://cp.abc.com/cpinterface/request"> 
<soapenv:Header/> 
<soapenv:Body> 
<req:ResponseMsg><![CDATA[<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
  <ResponseCode>0</ResponseCode> 
  <ResponseDesc>The service request is processed successfully.</ResponseDesc> 
  <ServiceStatus>0</ServiceStatus> 
</Response>]]></req:ResponseMsg> 
</soapenv:Body> 
</soapenv:Envelope>

Response2:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Header/> 
<soapenv:Body> 
<res:ResultMsg xmlns:res="http://cp.abc.com/cpinterface/result"><![CDATA[<?xml version="1.0" encoding="UTF-8"?> 
<Result> 
  <ResultType>0</ResultType> 
  <ResultCode>0</ResultCode> 
  <ResultDesc>Process service request successfully.</ResultDesc> 
  <ResultParameters> 
    <ResultParameter> 
      <Key>EndDate</Key> 
      <Value>20140103</Value> 
    </ResultParameter> 
    <ResultParameter> 
      <Key>EndTime</Key> 
      <Value>210156</Value> 
    </ResultParameter> 
    <ResultParameter> 
      <Key>Fee</Key> 
      <Value>0.89</Value> 
    </ResultParameter> 
  </ResultParameters> 
</Result>]]></req:ResultMsg> 
</soapenv:Body> 
</soapenv:Envelope>

【问题讨论】:

    标签: java xml web-services soap


    【解决方案1】:

    我认为这是不可能的,HTTP(S) 是一对一的,因为对一个请求有一个响应。您可以通过使用 HTTP 状态代码 100 来利用潜在的漏洞(继续)。状态码 100 表示; '到目前为止一切都很好,但更多信息即将到来'。然后,您的客户端应该继续等待最终的 SOAP 响应;然后有状态码 200(正常)或 500(错误)。虽然理论上可以使用不同的应用程序协议(例如 JMS、SMTP 或 FTP)来传输 SOAP 消息,但实际上它通常是 HTTP(S)。

    话虽如此,我认为您不应该采用 statuscode 100 路线,而应重新考虑您的方法,坚持“一个请求一个响应”。上面的代码实现起来会非常麻烦和棘手。

    【讨论】:

    • 无论你说什么是正确的,我过去使用的另一种方法是发送一个 SOAP 请求,服务器响应说收到。当服务器完全处理它时,要么您再次从其他服务器拉取响应,要么服务器回调其钩子上的请求,我认为这些是更好的方法。
    • 能否详细说明这种方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多