我在java中创建一个客户端,并希望从索引中获取查询结果但得到406错误: "不支持Content-Type标题[text / plain]"," status":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);
我在Kibana中使用dsl并且可以获得正确的查询结果。但它没有在java中得到正确的响应并抛出406错误。
如何解决此问题?非常感谢!
答案 0 :(得分:2)
您只需为Content-type
mime类型添加另一个application/json
HTTP请求标头,因为您正在发送一些JSON,ES不再猜测您的内容类型:
ClientResponse response = webResource
.entity(dsl)
.header("Content-type", "application/json") <--- add this
.accept("application/json")
.get(ClientResponse.class);