Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如果请求I';m处理已被取消?_Delphi_Http_Delphi Xe_Indy - Fatal编程技术网

Delphi 如果请求I';m处理已被取消?

Delphi 如果请求I';m处理已被取消?,delphi,http,delphi-xe,indy,Delphi,Http,Delphi Xe,Indy,我正在开发一个基于Indy HTTP服务器的web服务器,我发现如果我在浏览器中点击一个请求,然后在第一个请求完成处理之前点击另一个请求,可能会导致各种各样的问题。但是我找不到任何方法来确定我是否在一个被取消的请求中。每个请求都发生在自己的线程中,因此将线程设置为Terminated将是一种很好的检查方法,但这似乎没有发生 有没有办法让Indy通知我,它当前处理的请求已被发送请求的浏览器取消,它现在正尝试加载不同的内容?web浏览器可以取消正在进行的HTTP请求的唯一方法是关闭与服务器的连接。发

我正在开发一个基于Indy HTTP服务器的web服务器,我发现如果我在浏览器中点击一个请求,然后在第一个请求完成处理之前点击另一个请求,可能会导致各种各样的问题。但是我找不到任何方法来确定我是否在一个被取消的请求中。每个请求都发生在自己的线程中,因此将线程设置为Terminated将是一种很好的检查方法,但这似乎没有发生


有没有办法让Indy通知我,它当前处理的请求已被发送请求的浏览器取消,它现在正尝试加载不同的内容?

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