Elasticsearch Java Low Level REST Client(读取响应)
读取响应
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
响应抛出ResponseException
。ignore
是一个特殊的客户端参数,不会发送到Elasticsearch并包含逗号分隔的错误状态代码列表,它允许控制是否应将某些错误状态码视为预期响应而不是异常。这对于例如get
api很有用,因为它可以在文档丢失时返回404
,在这种情况下,响应正文将不包含错误,而是通常的get
api响应,只是没有找到未找到的文档。
请注意,低级别客户端不会公开任何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(读取响应)相关推荐
- Elasticsearch Java Low Level REST Client(通用配置)
Elasticsearch Java Low Level REST Client(通用配置) 通用配置 正如初始化中所解释的,RestClientBuilder支持提供RequestConfigCal ...
- Elasticsearch java api操作(一)(Java Low Level Rest Client)
一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...
- ElasticSearch Java High level Rest Client 官方文档中文翻译(一)
ElasticSearch Java High level Rest Client 官方文档中文翻译 一 纯粹记录自己在看官网的es rest high level api 时的翻译笔记,可以对照着官 ...
- 6、使用Java Low Level REST Client操作elasticsearch.docx
阅读文本大概需要3分钟. 1. 查看Index 创建Index时method使用PUT,查看Index时method使用GET /*** 查看api信息** @throws Except ...
- Elasticsearch -- Java High Level REST Client (RestHighLevelClient) 使用说明文档
官方API:https://www.elastic.co/guide/en/elasticsearch/client/index.html 选择自己使用的版本进行查阅
- java bulk_Elasticsearch Java High Level REST Client(Bulk API)
Bulk API Java High Level REST Client提供了Bulk处理器来帮助处理批量请求. Bulk请求 BulkRequest可以使用一个请求执行多个索引.更新和/或删除操作. ...
- Java High Level REST Client 中文API(仅供参考)
1.初始化 兼容性 Java High Level REST Client需要Java 1.8,并依赖于Elasticsearch核心项目,客户端版本与客户端开发的Elasticsearch版本相同, ...
- ElasticSearch 使用 High Level REST Client 实现搜索等功能实战
点击关注公众号,实用技术文章及时了解 ES 全称 Elasticsearch 是一款分布式的全文搜索引擎,在互联网公司中,这款搜索引擎一直被程序员们所推崇.常见的使用场景如ELK日志分析,电商APP的 ...
- java抛出异常齁_解決 Elasticsearch 使用 Java High Level REST Client 時出現 NoClassDefFoundError 錯誤...
因為工作關係需要用到 Elasticsearch,評估過後決定使用 high-level REST client 來進行開發,但在環境建置上卻出現了一些問題 錯誤訊息如下: org.springfra ...
最新文章
- 站内信息 php,站内消息_php教程
- win10之dlib安装 c++调用
- 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)
- ubuntu开启端口_RChain节点运行无门槛教程(二)--Windows-Ubuntu
- POJ2402 Palindrome Numbers 回文数
- 小程序的防盗链 VS 反盗链 - 总结篇
- 还不懂!软件测试(功能、接口、性能、自动化)详解
- 【免费毕设】PHP校园二手信息网站的设计与开发(源代码+论文)
- python 调试技巧
- 双变量空间自相关_【数据分析】变量探索分析
- 论文阅读之Siamese RPN以及一些其他内容的补充
- 图片太大怎么改小kb?简单的图片压缩方法分享
- 2021年美容师(中级)考试资料及美容师(中级)新版试题
- 八大著名IT企业云计算策略(英文版)
- 输入一个包含若干数据的列表,先将列表中的数由小到大进行排序,然后将值为负数的元素进行平方运算
- 奸商如何修改电脑属性里显示的CPU型号和内存容量
- cv2.read()函数
- Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)
- [C语言编程练习][01]输入ASCII码值,输出对应的字符
- Trident state
热门文章
- hive的inputStream
- CMD发现一个得到字符串长度的方法
- SCPPO(二十八):通过JS实现自动刷新进度
- 融资13亿后突然死亡!首款产品被苹果点赞,与谷歌竞赛的明星创业公司Anki倒闭...
- 谷歌推出针对AI歧视的新课程!60分钟的ML公平自学训练模块 | 资源
- 谷歌有只AI,自动给黑白视频上色,走到哪它都认识你
- 大咖来信 | 张亚勤@2018:终日“闭关”读论文,思考终极算法
- AI需要你帮忙 | 把两栖爬行动物框出来,提高AI识别准确率
- 过程、性能基线、性能模型与目标之间的关系
- Dom-Attribute对象