首页 > 解决方案 > curl: (3) [globbing] 不匹配的右大括号/方括号

问题描述

我尝试使用 curl 将 JSON 对象 POST 到 ElasticSearch 服务器,但不断收到 globbing 错误这是我的 curl 命令: curl -X POST "localhost:9200/school/_doc/10?pretty" -H "Content-type:application/json" -d "{"firstName":"Bilbo","lastName":"Baggins"}"

我从服务器得到的错误:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "mapper_parsing_exception",
        "reason" : "failed to parse"
      }
    ],
    "type" : "mapper_parsing_exception",
    "reason" : "failed to parse",
    "caused_by" : {
      "type" : "json_e_o_f_exception",
      "reason" : "Unexpected end-of-input: expected close marker for Object (start marker at [Source: (byte[])\"{\"; line: 1, column: 1])\n at [Source: (byte[])\"{\"; line: 1, column: 2]"
    }
  },
  "status" : 400
}
curl: (3) [globbing] unmatched close brace/bracket in column 33

标签: jsonelasticsearchcurl

解决方案


您的命令有语法问题,您的请求的curl正确curl命令是

curl -v -XPOST -H "Content-type: application/json" -d '{"firstName":"Bilbo","lastName":"Baggins"}' 'localhost:9200/school/_doc/10?pretty'

使用 REST 格式和 REST客户端(如邮递员)使用 Elasticsearch 的最佳方式,但如果您仍然想使用curl,您可以使用此在线 curl 构建器来避免语法问题。


推荐阅读