繁体   English   中英

无法从Elastic 6.0获取数据:“错误”:“不支持Content-Type标头[文本/纯文本]”,“状态”:406

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM