Java-клиент REST Elastic Search - операция ввода PUT Ввод данных setEntity - PullRequest
0 голосов
/ 05 октября 2018

Я хочу вставить некоторые записи, используя запрос 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 (), чтобы упорядочить параметры запроса для правильного синтаксиса JSON в классе RequestBody.

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 выше.

...