4

文档(复制如下)并没有详细说明 IOException 和 HttpException 在其上下文中的含义。

我的问题是:在 HttpClient.execute(HttpMethod) 方法中发生 IOException 后,我是否必须丢弃该对象并创建一个新的 HttpClient 才能再次执行方法?还是在发生其中一些异常后仍然可以使用(HttpClient 对象)来执行方法?

执行方法

public int executeMethod(HttpMethod 方法)
                  抛出 IOException,
                         异常
执行给定的 HTTP 方法。
参数:
method - 要执行的 HTTP 方法。
回报:
方法的响应代码
抛出:
IOException - 如果发生 I/O(传输)错误。可以从中恢复一些传输异常。
HttpException - 如果发生协议异常。通常无法从中恢复协议异常。
4

1 回答 1

4

您可以HttpClient根据需要多次重复使用该对象。我正在使用 3.0 版,无法确定这在最近的版本中是否发生了变化。

关于例外情况,评论更多地针对客户而HttpMethod不是客户。

“可以从某些传输异常中恢复”的意思是您可以重新发送请求并获得有效的响应。 IOExceptions当您无法发送请求或没有收到来自服务器的响应时(例如服务器已关闭,或者它无法处理它接收的所有请求),往往会发生这种情况。

“通常无法恢复协议异常”的意思是,您向其发出 HTTP 请求的服务器未发送符合 HTTP 协议的响应。通常,重新发送请求不会产生不同的结果。

我意识到这个答案对你有用可能有点晚了,但未来的读者可能仍然会受益。

这是关于使用 HttpClient 处理异常的有用指南(无论如何都是旧版本)。它可能会四处移动,因此这里是查找页面的有用搜索

于 2011-05-10T14:37:24.160 回答