我想使用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所示。