我正在使用使用
java的
Android设备连接到使用DefaultHttpClient运行PHP的服务器.
我正在做的一个测试是检查java代码是否优雅地处理自己,如果服务器在发送数据时需要很长时间.如果它确实需要很长时间,它会断开连接并重试.
目前我已将连接超时设置为3秒:
HttpConnectionParams.setSoTimeout(httpParameters, 3000);
在服务器上,PHP脚本正在休眠10秒:
sleep(10);
java代码有效,如果脚本花费的时间超过3秒,则抛出java.net.SocketTimeoutException,然后在少量时间后重试.
PHP脚本继续运行,这不是我想要的.我已经尝试在sleep函数之后直接使用connection_aborted进行测试,但它没有捕获已经发生的客户端断开连接.
ignore_user_abort(true);
sleep(10);
print "black hole";
flush();
if(connection_aborted()!=0){
// You would think this works but it does not.
}
什么是推荐的处理方式?