如果我正在处理的请求被取消,我该如何被告知?

Mas*_*ler 3 delphi http indy delphi-xe

我正在开发一个基于Indy的HTTP服务器构建的Web服务器,我发现如果我在浏览器中点击一个请求,然后在第一个请求完成之前再点击另一个请求,则会导致各种问题.但我无法找到任何方法来确定我是否在取消请求.每个请求都在其自己的线程内发生,因此将线程设置为Terminated将是一种很好的检查方式,但这似乎并没有发生.

有什么方法我可以让Indy通知我,它当前正在处理的请求已经被发送它的浏览器取消了,现在它正在尝试加载不同的东西吗?

Rem*_*eau 5

Web浏览器可以取消正在进行的HTTP请求的唯一方法是关闭其与服务器的连接.发生这种情况时,TIdHTTPServer将在下次尝试访问断开连接的套接字时引发异常.只是让异常传递到TIdHTTPServer进行默认处理,这样它就可以终止调用线程并清理套接字.这是正常行为.