[英]Cannot get data from Elastic 6.0: “error”:”Content-Type header [text/plain] is not supported”,”status”:406
我在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);
我在Kibana中使用dsl,可以获取正确的查询结果。 但是它没有在Java中获得正确的响应并抛出406错误。
如何解决此问题? 非常感谢!
您只需要为application/json
mime类型添加另一个Content-type
HTTP请求标头,因为您要发送一些JSON并且ES不再猜测您的内容类型:
ClientResponse response = webResource
.entity(dsl)
.header("Content-type", "application/json") <--- add this
.accept("application/json")
.get(ClientResponse.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.