pom文件加入以下依赖:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
代码样例:
public static void main(String args[]) throws URISyntaxException, IOException {
String mSearchUrl = "http://localhost:9200/twitter/_msearch";
String searchUrl = "http://localhost:9200/my_index/_search?pretty";
// 注意在使用msearch时,注意写法,一定要加换行符,不然报错
String mSearch =
"{\"index\":\"posts\"}\n" +
"{\"query\":{\"match_all\":{}},\"from\":0,\"size\":1}\n" +
"{\"index\":\"test\"}\n" +
"{\"query\":{\"match_all\":{}},\"size\":1}\n";
// 普遍search写法
String search = "{ \"query\": { \"terms\": { \"color\" : { \"index\" : \"my_index\", \"id\" : \"2\", \"path\" : \"color\" } } }}";
demo(mSearchUrl, mSearch);
demo(searchUrl,search);
}
private static String demo(String url, String data) throws ClientProtocolException, IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建POST请求对象
HttpPost httpPost = new HttpPost(url);
/*
* 添加请求头信息
*/
httpPost.addHeader("Content-Type", "application/json");
StringEntity stringEntity = new StringEntity(data, "UTF-8");
stringEntity.setContentEncoding("UTF-8");
stringEntity.setContentType("application/json");
//设置请求主体
httpPost.setEntity(stringEntity);
HttpResponse httpResponse = httpClient.execute(httpPost);
String backResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");//请求返回结果
System.out.println(backResult);
if (httpResponse != null) {
try {
EntityUtils.consume(httpResponse.getEntity());
} catch (IOException e) {
e.printStackTrace();
}
}
((CloseableHttpResponse) httpResponse).close();
httpClient.close();
return backResult;
}