RESTful 获取 ES Response

该博客主要展示了如何利用JSONObject解析JSON字符串,并通过HttpClients创建HTTP POST请求,向指定URL发送JSON数据进行搜索操作。在获取响应后,使用ObjectMapper对结果进行格式化输出和解析,提取关键信息。整个过程涉及了JSON处理、HTTP客户端操作以及错误日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	        // 解析查询 json 格式字符串
        JSONObject jsonObject = JSONObject.fromObject(jsonStr);
        CloseableHttpClient client = null;
        JSONObject searchResult = null;

        try {
            client = HttpClients.createDefault();

            HttpPost post = new HttpPost();
            post.setURI(URI.create("http://" + ip + ":" + port + "/" + indexName + "/_search?pretty=true"));
            post.setEntity(new StringEntity(jsonObject.toString(), ContentType.APPLICATION_JSON));
            HttpResponse resp = client.execute(post);

            String result = IOUtils.toString(resp.getEntity().getContent(), "utf-8");

            // 格式化输出 json 格式字符串
            ObjectMapper mapper = new ObjectMapper();
            System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapper.readValue(result, Object.class)));

            // 解析 json 格式字符串
            JSONObject resultJsonObject = JSONObject.fromObject(JSON.parseObject(result));

            if (resultJsonObject.containsKey("error")) {
            } else {
                searchResult = resultJsonObject.getJSONObject("hits");
            }
        } catch (Exception exception) {
            log.error("Get result failed.", exception);
        } finally {
            try {
                if (client != null) {
                    client.close();
                }
            } catch (IOException exception) {
                log.error("Close client failed.", exception);
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值