响应结果,无论是被同步请求返回的结果还是作为一个ResponseListener#onSuccess(Response)获取的结果,包装被http client返回的这个响应对象并且暴露额外的信息。
Response response = restClient.performRequest(new Request("GET", "/"));
RequestLine requestLine = response.getRequestLine(); //信息关于执行的请求
HttpHost host = response.getHost(); //返回响应的host
int statusCode = response.getStatusLine().getStatusCode(); //响应状态
Header[] headers = response.getHeaders(); //响应头信息
String responseBody = EntityUtils.toString(response.getEntity()); //响应内容
当执行一个请求一个异常被抛出(或者ResponseListener#onFailure(Exception)接收的参数)在下面的设想:
2、交互问题 比如SocketTimeoutException
一个ResponseException 不会被排除 对于返回404的head请求,因为他是一个被希望的head请求响应,简单标注资源没有被找到。
这是有用的对于当document丢失时候获取api能返回404的实例,在这种情况下 返回体将不会报错一个error而是经常使用api的响应结果,仅仅是没有document 因为它已经丢失
请注意low-level client 不能暴露任何帮助对于json的控制或者不控制,用户自由的使用他们想用的library去组织结果

这篇博客详细介绍了如何处理HTTP客户端的响应结果,包括获取请求信息、响应状态、头信息和内容。同时,讨论了在执行请求时可能出现的异常情况,如IOException、SocketTimeoutException和ResponseException,并解释了如何针对不同错误状态进行处理。特别地,提到了404响应在某些场景下可能被视为正常响应。此外,还强调了低级别客户端不处理JSON控制,以及ApacheAsyncHttpClient的HttpEntity实现和自定义HttpAsyncResponseConsumer的使用方式。
1165

被折叠的 条评论
为什么被折叠?



