Android 当请求过多时,服务器是否可能超时?

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

我正在开发一个Android应用程序,其中一个工作流必须处理一系列对远程服务器的请求(实际上只是一个网站,它用HTML响应)。我正在使用截击和OkHttp

让我们这样说:我有这样的东西:

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秒左右,因此这不是正常行为)
  • 它提供了一个空内容:
    内容长度:0
    (我专门将内部缓存设置为null,因此它与此无关)
请注意,即使我尝试在前一个调用完成后执行每个调用(因此,如果是
callback()
调用队列中的下一个请求,并且
refresh()
只执行第一个请求),我仍然会遇到同样的问题。唯一改变的是,它停止提供空的身体——它只是超时

所以我的问题是:这个服务器是否有可能实现某种“控制”,这样,当同一个客户机在很短的时间内开始执行太多请求时,它就会以一种不常见的方式响应(即超时并提供
内容长度:0
)?
因此,唯一的解决办法实际上是在每次调用之间使用任意的“暂停”来停止客户端?

是的,一些服务器有这样的机制来防止拒绝服务攻击()。