我正在尝试通过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的方法吗?
不能选择禁用安全性。
谢谢!
-亚历克斯
答案 0 :(得分:0)
认证必须是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/