我正在尝试通过Invoke-RestMethod(PowerShell版本3,4,5(连接到Neo4j。
根据网络建议,我正在设置 URI: $Uri = "http://localhost:7474/db/data/cypher">
。后跟调用 REST 方法(POST 或 GET,无关紧要(
Invoke-RestMethod -Uri $Uri -Method Post -Body $Body -ContentType 'application/json'
我得到的消息是:
System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()
我试着把 http://userId/pwd@localhost:7474... 但错误是一样的。
有没有另一种方法可以将身份验证信息传递给 Neo4j?
禁用安全性不是一种选择。
谢谢!
--亚历克斯
身份验证必须使用 http 标准身份验证。例如,您可以使用以下代码在 powershell 中执行此操作。
$user = 'user'
$pass = 'pass'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
Invoke-RestMethod -Uri $Uri -Method Post -Body $Body -ContentType 'application/json' -Headers $Headers
背景错误代码 401 表示服务器上的身份验证不正确。
我在文档中找到了此信息。 https://neo4j.com/docs/developer-manual/3.4/http-api/authentication/