我有一个爬虫 Java 应用程序,它应该连接到一些 HTTP 服务器,下载其页面的 HTML 内容,然后转到其他 HTTP 服务器。对于这个任务,我使用了 Apache HTTP 库。
在运行的前几个小时,事情似乎运行得相当顺利(有时会抛出一些与连接相关的异常,但这是意料之中的)。然而过了一段时间,我似乎在我发出的每个请求上都收到了 SocketTimeoutException。HttpClient 类的“执行”方法不会发生异常,而是当我尝试获取实体的内容(我从 HttpResponse 对象检索),或者当我尝试将该内容写入文件时。
然后,如果我停止应用程序并重新启动它,事情似乎又可以正常工作了——即使它从停止的地方开始,这意味着它正在与我在尝试交互时收到 SocketTimeoutException 的同一台服务器进行交互与之前。
我尝试寻找可能缺少的各种可能的清理方法,并且在使用这个库时可能是必不可少的,但找不到任何东西。
任何帮助将不胜感激。谢谢。