当我尝试使用curl
中的以下方法为Solr基本身份验证添加用户时curl --user user:password http://localhost:8983/solr/admin/authentication -H 'Content-type:application/json' -d '{
"set-user": {"tom" : "TomIsCool" ,
"harry":"HarrysSecret"}}'
我收到以下错误:
{
"responseHeader":{
"status":400,
"QTime":0},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.common.SolrException"],
"msg":"No contentStream",
"code":400}}
curl: (3) [globbing] unmatched brace in column 1
枩]?V7`-{炘9叡 t肤 ,? E'qyT咐黣]儎;衷 鈛^W褹?curl: (3) [globbing] unmatched cl
ose brace/bracket in column 13
这个错误意味着什么,我们应该如何解决? 我在Solr 6.4.2上使用SolrCloud。
的问候,
埃德
答案 0 :(得分:1)
如果您在Windows下使用curl,请is a known issue with cmd.exe's escaping of single quotes。在JSON字符串周围使用双引号(或使用cygwin,powershell等)
curl --user user:password http://localhost:8983/solr/admin/authentication -H
"Content-type:application/json" -d "{
\"set-user\": {\"tom\" : \"TomIsCool\" ,
\"harry\":\"HarrysSecret\"}}"
来自curl的“globbing”消息是curl正在做的事情而不是你想要的事情的暗示,并且请求的实际主体没有到达Solr(它抱怨没有消息体存在)。
您也可以通过在网址中使用stream.body
并从浏览器发出请求来解决此问题。