Elastic Search Java REST Client-PUT操作setEntity数据输入

时间:2018-10-05 08:28:30

标签: java json rest elasticsearch put

我想使用PUT请求插入一些记录。我有请求主体的JSON字符串和Java Pojo对象。

弹性搜索PUT请求需要将以下格式的主体数据设置为实体。谁能建议我如何将JSON字符串转换为这种格式?

"{\n" +
"\"user\" : \"kimchy\",\n" +
"\"post_date\" : \"2009-11-15T14:12:12\",\n" +
"\"message\" : \"trying out Elasticsearch\"\n" +"}"

或请提出另一种好的方法来执行此任务。

这是其余客户端的代码。 requestBody是请求对象的实例。我已经重写了toString()方法,以将请求参数安排为RequestBody类中的正确JSON语法。

RestClient restClient = RestClient.builder(
                new HttpHost(DataFeederConstants.HTTP_HOST, DataFeederConstants.PORT, DataFeederConstants.PROTOCOL))
                .build();

        Request request = new Request(DataFeederConstants.PUT, DataFeederConstants.END_POINT_URL);
        request.setEntity(new NStringEntity(requestBody.toString(), ContentType.APPLICATION_JSON));
        request.setEntity(new NStringEntity(DataFeederConstants.JSON_ENTITY_NAME, ContentType.APPLICATION_JSON));
        restClient.performRequestAsync(request, new ResponseListener() {
            @Override
            public void onSuccess(Response response) {
                try {
                System.out.println(EntityUtils.toString(response.getEntity()));
                } catch (ParseException | IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(Exception exception) {
                System.out.println(exception.getMessage());
            }
        });

输入主体(requestBody.toString())格式为正确的JSON数组,没有(“ \”)斜杠,如上面的示例JSON所示。

0 个答案:

没有答案