Elv*_*lva 0 java elasticsearch
我在Java中创建了一个客户端,想从索引中获取查询结果,但收到406错误:“不支持Content-Type标头[text / plain]”,“状态”:406。
Java平台:1.6
ES版本:6.0
下面是代码片段:
Client clientInstance = Client.create();
clientInstance.addFilter(new HTTPBasicAuthFilter("", ""));
WebResource webResource =
clientInstance.resource("http://hostname:9200/indexname/_search");
ClientResponse response=webResource.entity(dsl).accept("application/json").get(ClientResponse.class);
String result = response.getEntity(String.class);
Run Code Online (Sandbox Code Playgroud)
我在Kibana中使用dsl,可以获取正确的查询结果。但是它没有在Java中获得正确的响应并抛出406错误。
如何解决此问题?非常感谢!
您只需要Content-type为application/jsonmime类型添加另一个HTTP请求标头,因为您要发送一些JSON并且ES不再猜测您的内容类型:
ClientResponse response = webResource
.entity(dsl)
.header("Content-type", "application/json") <--- add this
.accept("application/json")
.get(ClientResponse.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3338 次 |
| 最近记录: |