我正在开发一个从第三方网站检索信息的类库。如果在设定的时间段(约 0.5 秒)内发出过多请求,正在访问的网站将停止响应。
我的库的公共方法直接与 Web 服务器上的文件资源相关。换句话说,每次调用一个方法时,HttpWebRequest
都会创建一个并发送到服务器。如果一切顺利,将向调用者返回一个 XML 文件。但是,如果这是 0.5 秒内的第二次 Web 请求,该请求将超时。
我的困境在于我应该如何处理请求限制(如果有的话)。显然,我不希望调用者坐在那里等待响应——尤其是如果我完全确定他们的请求会超时。
我的库对我创建的 web 请求进行排队和限制是否更有意义,或者如果客户端在 API 调用之间等待的时间不够长,我的库是否应该简单地抛出异常?