curl -X POST ^
More? http://localhost:7474/db/neo4j/tx/commit ^
More? -H 'Authorization: Basic bmVvNGo6MTIzNDU2Nzg=' ^
More? -H 'Content-Type: application/json' ^
More? -d '{ \"statements": [{\"statement": \"MATCH (n) RETURN n, labels(n) as labels\",\"parameters\": {}}]
執行上面的指令報以下錯誤:
{"errors":[{"code":"Neo.ClientError.Security.Unauthorized","message":"No authentication header supplied."}]}curl: (6) Could not resolve host: Basic
curl: (3) URL rejected: Bad hostname
curl: (6) Could not resolve host: application
curl: (3) bad range specification in URL position 15:
"statements: [{"statement:^
問題解析和修復:
-
認證錯誤:
-
錯誤信息?
"No authentication header supplied"
?表示你的認證頭沒有正確傳遞 -
原因是 Windows 中使用?
'
?單引號時,^
?換行符會被錯誤解析 -
解決方案:在 Windows CMD 中使用?
"
?雙引號包裹頭部和 JSON 數據
-
-
URL 解析錯誤:
-
curl: (6) Could not resolve host: Basic
?和?curl: (6) Could not resolve host: application
?表示你的?-H
?頭部參數被錯誤解析 -
原因是 Windows 中錯誤的引號和換行符組合
-
-
JSON 格式錯誤:
-
原始命令中?
\"statements"
?有引號不匹配的問題 -
修正為?
\"statements\"
-
其他注意事項:
-
確保你的 base64 認證字符串是正確的:
-
bmVvNGo6MTIzNDU2Nzg=
?解碼后應該是?neo4j:12345678
-
如果需要重新生成:
echo -n "username:password" | base64
-
-
如果仍然遇到認證問題,嘗試:
-
確認 Neo4j 用戶名/密碼是否正確
-
檢查 Neo4j 是否啟用了認證(默認是啟用的)
-
-
對于復雜的 JSON 請求,可以考慮:
-
將 JSON 保存到文件(如?
query.json
)然后使用?-d @query.json
-
使用 Postman 或 Insomnia 等 API 測試工具
-
-
如果使用 PowerShell 而不是 CMD,語法會有所不同(使用?
換行符和
"` 引號)
?
修正后的命令(Linux/macOS):
curl -X POST \http://localhost:7474/db/neo4j/tx/commit \-H "Authorization: Basic bmVvNGo6MTIzNDU2Nzg=" \-H "Content-Type: application/json" \-d '{"statements": [{"statement": "MATCH (n) RETURN n, labels(n) as labels","parameters": {}}]}'
修正后的命令(Windows CMD):
curl -X POST ^http://localhost:7474/db/neo4j/tx/commit ^-H "Authorization: Basic bmVvNGo6MTIzNDU2Nzg=" ^-H "Content-Type: application/json" ^-d "{\"statements\": [{\"statement\": \"MATCH (n) RETURN n, labels(n) as labels\",\"parameters\": {}}]}"