2017-04-13 52 views
0

當我嘗試使用下面的方法,增加了對Solr的基本身份驗證的用戶在捲曲誤差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。

問候,
埃德溫

回答

1

如果你正在使用Windows下的捲曲,這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\"}}" 

從捲曲「通配」消息是提示,捲曲做的比你打算什麼別的東西,而實際的身體的請求沒有得到Solr(這是抱怨沒有消息正文存在)。

您也可以通過在URL中使用stream.body並通過瀏覽器發出請求來解決此問題。

+0

感謝@MatsLindh的回答。 我設法讓它在curl中工作。但是,我無法使用stream.body來工作,而且我找不到任何示例。你有這方面的例子嗎? –

+0

https://cwiki.apache.org/confluence/display/solr/Content+Streams - 也許它不適用於JSON消息。不確定。 – MatsLindh