读取响应

Response对象由同步performRequest方法返回或作为ResponseListener#onSuccess(Response)中的参数接收,它包装http客户端返回的响应对象并公开一些其他信息。

Response response = restClient.performRequest(new Request("GET", "/"));
RequestLine requestLine = response.getRequestLine();
HttpHost host = response.getHost();
int statusCode = response.getStatusLine().getStatusCode();
Header[] headers = response.getHeaders();
String responseBody = EntityUtils.toString(response.getEntity());
  • response.getRequestLine() — 有关执行的请求的信息。
  • response.getHost() — 返回响应的主机。
  • response.getStatusLine() — 响应状态行,你可以从中检索状态代码。
  • response.getHeaders() — 响应头,也可以通过getHeader(String)按名称检索。
  • response.getEntity() — 响应体包含在org.apache.http.HttpEntity对象中。

执行请求时,会抛出异常(或在以下方案中作为ResponseListener#onFailure(Exception)中的参数接收:

IOException

  • 通信问题(例如SocketTimeoutException

ResponseException

  • 返回了一个响应,但其状态代码表示错误(不是2xx),ResponseException源自有效的http响应,因此它公开其相应的Response对象,该对象提供对返回的响应的访问。

对于返回404状态码的HEAD请求,不会抛出ResponseException,因为它是一个预期的HEAD响应,仅表示找不到该资源。除非ignore参数包含404,否则所有其他HTTP方法(例如,GET)都会为404响应抛出ResponseExceptionignore是一个特殊的客户端参数,不会发送到Elasticsearch并包含逗号分隔的错误状态代码列表,它允许控制是否应将某些错误状态码视为预期响应而不是异常。这对于例如getapi很有用,因为它可以在文档丢失时返回404,在这种情况下,响应正文将不包含错误,而是通常的getapi响应,只是没有找到未找到的文档。

请注意,低级别客户端不会公开任何json编组和反编组的辅助程序,用户可以自由地使用他们喜欢的库。

底层的Apache Async Http Client附带了不同的org.apache.http.HttpEntity实现,允许以不同的格式提供请求体(流、字节数组、字符串等),至于读取响应体,HttpEntity#getContent方法很方便,它返回从先前缓冲的响应体读取的InputStream,作为替代方案,可以提供自定义org.apache.http.nio.protocol.HttpAsyncResponseConsumer来控制字节的读取和缓冲方式。

日志记录

Java REST客户端使用Apache Async Http Client使用的相同日志库:Apache Commons Logging,它支持许多流行的日志记录实现,启用日志记录的java包是客户端本身的org.elasticsearch.client和嗅探器的org.elasticsearch.client.sniffer

还可以启用请求跟踪器日志记录,以便以curl格式记录每个请求和相应的响应,这在调试时很方便,例如,如果需要手动执行请求以检查它是否仍然产生与它相同的响应,为tracer包启用跟踪日志记录以打印出此类日志行,请注意,此类日志记录开销很大,不应在生产环境中始终启用,而是仅在需要时暂时使用。


上一篇:执行请求

下一篇:通用配置

Elasticsearch Java Low Level REST Client(读取响应)相关推荐

  1. Elasticsearch Java Low Level REST Client(通用配置)

    Elasticsearch Java Low Level REST Client(通用配置) 通用配置 正如初始化中所解释的,RestClientBuilder支持提供RequestConfigCal ...

  2. Elasticsearch java api操作(一)(Java Low Level Rest Client)

    一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...

  3. ElasticSearch Java High level Rest Client 官方文档中文翻译(一)

    ElasticSearch Java High level Rest Client 官方文档中文翻译 一 纯粹记录自己在看官网的es rest high level api 时的翻译笔记,可以对照着官 ...

  4. 6、使用Java Low Level REST Client操作elasticsearch.docx

    阅读文本大概需要3分钟. 1.        查看Index 创建Index时method使用PUT,查看Index时method使用GET /*** 查看api信息** @throws Except ...

  5. Elasticsearch -- Java High Level REST Client (RestHighLevelClient) 使用说明文档

    官方API:https://www.elastic.co/guide/en/elasticsearch/client/index.html 选择自己使用的版本进行查阅

  6. java bulk_Elasticsearch Java High Level REST Client(Bulk API)

    Bulk API Java High Level REST Client提供了Bulk处理器来帮助处理批量请求. Bulk请求 BulkRequest可以使用一个请求执行多个索引.更新和/或删除操作. ...

  7. Java High Level REST Client 中文API(仅供参考)

    1.初始化 兼容性 Java High Level REST Client需要Java 1.8,并依赖于Elasticsearch核心项目,客户端版本与客户端开发的Elasticsearch版本相同, ...

  8. ElasticSearch 使用 High Level REST Client 实现搜索等功能实战

    点击关注公众号,实用技术文章及时了解 ES 全称 Elasticsearch 是一款分布式的全文搜索引擎,在互联网公司中,这款搜索引擎一直被程序员们所推崇.常见的使用场景如ELK日志分析,电商APP的 ...

  9. java抛出异常齁_解決 Elasticsearch 使用 Java High Level REST Client 時出現 NoClassDefFoundError 錯誤...

    因為工作關係需要用到 Elasticsearch,評估過後決定使用 high-level REST client 來進行開發,但在環境建置上卻出現了一些問題 錯誤訊息如下: org.springfra ...

最新文章

  1. 站内信息 php,站内消息_php教程
  2. win10之dlib安装 c++调用
  3. 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)
  4. ubuntu开启端口_RChain节点运行无门槛教程(二)--Windows-Ubuntu
  5. POJ2402 Palindrome Numbers 回文数
  6. 小程序的防盗链 VS 反盗链 - 总结篇
  7. 还不懂!软件测试(功能、接口、性能、自动化)详解
  8. 【免费毕设】PHP校园二手信息网站的设计与开发(源代码+论文)
  9. python 调试技巧
  10. 双变量空间自相关_【数据分析】变量探索分析
  11. 论文阅读之Siamese RPN以及一些其他内容的补充
  12. 图片太大怎么改小kb?简单的图片压缩方法分享
  13. 2021年美容师(中级)考试资料及美容师(中级)新版试题
  14. 八大著名IT企业云计算策略(英文版)
  15. 输入一个包含若干数据的列表,先将列表中的数由小到大进行排序,然后将值为负数的元素进行平方运算
  16. 奸商如何修改电脑属性里显示的CPU型号和内存容量
  17. cv2.read()函数
  18. Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)
  19. [C语言编程练习][01]输入ASCII码值,输出对应的字符
  20. Trident state

热门文章

  1. hive的inputStream
  2. CMD发现一个得到字符串长度的方法
  3. SCPPO(二十八):通过JS实现自动刷新进度
  4. 融资13亿后突然死亡!首款产品被苹果点赞,与谷歌竞赛的明星创业公司Anki倒闭...
  5. 谷歌推出针对AI歧视的新课程!60分钟的ML公平自学训练模块 | 资源
  6. 谷歌有只AI,自动给黑白视频上色,走到哪它都认识你
  7. 大咖来信 | 张亚勤@2018:终日“闭关”读论文,思考终极算法
  8. AI需要你帮忙 | 把两栖爬行动物框出来,提高AI识别准确率
  9. 过程、性能基线、性能模型与目标之间的关系
  10. Dom-Attribute对象