soap - SOAP 支持取消调用吗?

标签 soap request-cancelling

使用 SOAP 协议(protocol)时,是否可以使用 SOAP 取消挂起的远程函数调用?

我看到三种不同的情况:

  • A) 向需要很长时间才能完成的服务发出请求。例如,复制包含大量文件的目录时,是否可以取消文件复制循环?

  • B) 发出返回长列表的请求。例如,当查询内存中的一个大用户名列表时,是否可以取消此列表响应的传输?

  • C) 取消仍在内部调用队列中的调用;换句话说,在服务器开始处理它之前。当短时间内发出大量异步调用时,可能会发生这种情况。

最佳答案

从客户端的角度来看,取消同步(请求-响应)SOAP 调用与任何其他 HTTP 调用相同 - 只需断开连接并停止监听响应即可。编写良好的服务器将在继续进行冗长的操作之前检查客户端是否仍然连接(例如,在 .NET 中,服务器将检查 IsClientConnected ),如果没有,则应取消操作。

但是,单向调用无法以这种方式取消,因为您已经发送了有效负载并断开连接。取消单向调用需要显式调用 SOAP 服务上的某种取消方法,而 SOAP 服务必须显式支持该方法。

关于soap - SOAP 支持取消调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200819/

相关文章:

ios - 对于 Soap NSURLConnection,请确保您的应用支持 IPv6 网络,因为需要 IPv6 兼容性

Java 线程 : Shutdown flag vs Catching Exception

javascript - 取消ajax请求: can the handler still be executed

php - 如何取消已经运行的ajax请求(在服务器端)

java - SOAP 授权

java - 如何在 Java(或 C#)中使用摘要身份验证 HTTP 通过 HTTP 发送 SOAP 请求?

java - Spring WS强制SOAP端点操作名称

wcf - WCF、Rest 和 SOAP 之间是什么关系?

ios - 如果此文件已存在,则取消 Alamofire 文件下载

http - 取消状态阻止字体下载