我已经将Elasticsearch(5.5版)集成到Gitlab中并尝试使用它。这是我从外部Windows客户端发送的命令:
curl -XGET gitlab.server:9200/ -H 'Content-Type: application/json' -d '{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}'
但这不起作用。在客户端上,我得到以下错误:
{“错误”:“不支持Content-Type标头[应用程序/ x-www-form-urlencoded]”,“状态”:406}
curl:(6)无法解析主机:text
curl:(3)[globbing ]第1列
curl中不匹配的花括号:(3)错误的URL,冒号是第一个字符
curl:(3)[globbing]在第1列
curl中不匹配的花括号:(3)错误的URL,冒号是第一个字符
curl:(3)[globbing ]第2列中的错误范围
curl:(6)无法解析主机:查询
curl:(3)错误的URL,冒号是第一个字符
curl:(3)[globbing]第13列中的大括号/括号不匹配
在/var/log/elasticsearch/elasticsearch.log中的服务器上,我看不到任何日志消息。
但是,从linux服务器运行与上述相同的确切命令会给我一个没有错误的响应:
{
"name" : "name",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uuid",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
我尝试添加http.content_type.required: true
到elasticsearch.yml中,但问题是相同的。那么,我在这里做错了什么?为什么从Windows客户端获取“不支持Content-
Type标头”?我该如何解决?
像这样将’更改为’之后:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}"
我收到此回复:
{
"name" : "name",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uuid",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
curl: (6) Could not resolve host: bar
将封闭的引号从更改为后,请对参数内部使用的引号'
进行"
转义"
,如下所示:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{\"query\": {\"simple_query_string\" : {\"fields\" : [\"content\"], \"query\" : \"foo bar -baz\"}}}"
另一种选择是将json放入文件中,并使用@
前缀作为参数。
json.txt
{
"query": {
"simple_query_string" : {
"fields" : ["content"],
"query" : "foo bar -baz"
}
}
}
并如下运行curl:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d @json.txt
问题内容: 我曾经有ElasticSearch 5.2,并且刚升级到6.0。 我正在尝试按照此处的指南创建索引模板,但出现错误 我的查询是 问题答案: 要解决此问题,请添加curl选项 这个错误是由于 严格的内容类型检查 在ElasticSearch 6.0中引入,在解释这个岗位 从Elasticsearch 6.0开始,所有包含主体的REST请求也必须提供该主体的正确内容类型。
问题内容: 我的下面的代码 错误:{“错误”:“内容类型标头[应用程序/ x-www-form-urlencoded]不支持ed”,“状态”:406} 问题答案: 您需要像这样指定content-type标头
当内容类型不是text/html、text/plain或text/xml,而是application/x-www-form-urlencoded内容类型时,我很难理解如何设置字符集。 给出以下(简化的)javascript代码: 如果我没有显式设置编码, Firebug告诉我内容类型是"Application/x-www-form-urlencoded; charset=UTF-8"。 例如,如果
我以前有ElasticSearch 5.2,刚刚升级到6.0。 我试图创建一个索引模板以下指南在这里,但得到了错误 我的问题是
感谢您就我在CXF REST提供商方面面临的以下问题提供建议。 我使用Apache CXF开发了REST web服务服务器。以下是合同定义。请注意,这是在Camel上下文中使用的。 以下是我的bean定义: 当我发送内容类型为“application/json”的请求时,一切正常。但当发送内容类型为“application/x-www-form-urlencoded”的请求时,请求会命中服务器,但
@PostMapping public UserResponse createUser(@RequestBody UserRequest userDetail){ 这是我收到的错误代码 } 我尝试了很多不同的方法仍然没有得到解决方案这是来自邮递员的图片来自邮递员的图片