Android 当请求过多时,服务器是否可能超时?
我正在开发一个Android应用程序,其中一个工作流必须处理一系列对远程服务器的请求(实际上只是一个网站,它用HTML响应)。我正在使用截击和OkHttp 让我们这样说:我有这样的东西:Android 当请求过多时,服务器是否可能超时?,android,http,connection,timeout,server,Android,Http,Connection,Timeout,Server,我正在开发一个Android应用程序,其中一个工作流必须处理一系列对远程服务器的请求(实际上只是一个网站,它用HTML响应)。我正在使用截击和OkHttp 让我们这样说:我有这样的东西: private void refresh() { for (Call call : listOfCalls) { addToQueue(call); // because of Volley mechanism, this also executes the request
private void refresh() {
for (Call call : listOfCalls) {
addToQueue(call); // because of Volley mechanism, this also executes the request
}
}
@Override
public void callback() {
// I expect this method to be called listOfCalls.size() times
}
调用的数量大约为10个,根据我的测试,它们的处理时间大约为10-15毫秒。这意味着服务器必须每1/2毫秒处理一个来自同一客户机的调用
当我处于调试模式时,一切正常,我强制单独发送调用,每1-2秒发送一次。但是,每当我试图一次将一系列调用全部中断时,后端会突然开始执行,但只在一些调用上执行,而且没有任何明显的模式,有两件非常奇怪的事情:
- 它只是超时(我将超时设置为10秒左右,因此这不是正常行为)
- 它提供了一个空内容:
(我专门将内部缓存设置为null,因此它与此无关)内容长度:0
callback()
调用队列中的下一个请求,并且refresh()
只执行第一个请求),我仍然会遇到同样的问题。唯一改变的是,它停止提供空的身体——它只是超时
所以我的问题是:这个服务器是否有可能实现某种“控制”,这样,当同一个客户机在很短的时间内开始执行太多请求时,它就会以一种不常见的方式响应(即超时并提供内容长度:0
)?
因此,唯一的解决办法实际上是在每次调用之间使用任意的“暂停”来停止客户端?是的,一些服务器有这样的机制来防止拒绝服务攻击()。