Invoke-RestMethod 或 Invoke-WebRequest 版本的 curl?
Invoke-RestMethod or Invoke-WebRequest version of curl?
我正在尝试访问我们本地服务器上 Sonarqube 的网络 api。 Sonarqube 文档中的示例都是基于 curl 的,我正在尝试将它们转换为 PowerShell,Invoke-WebRequest 或 Invoke-RestMethod。我在凭据方面遇到问题。我不断收到 401 未授权错误。我已经审查了每一个 post 我能找到的关于这样做的,但我没有看到关于如何做到这一点的全面完整的答案。
这就是我现在 运行宁:
$user='myUserid'
$password='myPassword'
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)
$uri="http://myServer.ad1.prod:9000/api/properties"
Invoke-RestMethod -Uri $uri -Credential $cred -Method Get
响应是:
Invoke-RestMethod : {"err_code":401,"err_msg":"Unauthorized"}
我已经 运行 了原始产品文档中定义的 curl 命令,它可以正常工作。相同的用户 ID、相同的密码、相同的 URI、相同的方法。
有人可以指点一下吗?
我的 curl 命令是:
curl -u myID:myPassword X GET http://myServer.ad.prod:9000/api/properties
我认为您需要像这样传递凭据:
$username = "user"
$password = "password"
$authInfo = ("{0}:{1}" -f $username,$password)
$authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo)
$authInfo = [System.Convert]::ToBase64String($authInfo)
$headers = @{Authorization=("Basic {0}" -f $authInfo)}
Invoke-RestMethod -Method Head -Uri "https://pathtowhatever" -ContentType 'text/json' -Headers $headers
我正在尝试访问我们本地服务器上 Sonarqube 的网络 api。 Sonarqube 文档中的示例都是基于 curl 的,我正在尝试将它们转换为 PowerShell,Invoke-WebRequest 或 Invoke-RestMethod。我在凭据方面遇到问题。我不断收到 401 未授权错误。我已经审查了每一个 post 我能找到的关于这样做的,但我没有看到关于如何做到这一点的全面完整的答案。
这就是我现在 运行宁:
$user='myUserid'
$password='myPassword'
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)
$uri="http://myServer.ad1.prod:9000/api/properties"
Invoke-RestMethod -Uri $uri -Credential $cred -Method Get
响应是:
Invoke-RestMethod : {"err_code":401,"err_msg":"Unauthorized"}
我已经 运行 了原始产品文档中定义的 curl 命令,它可以正常工作。相同的用户 ID、相同的密码、相同的 URI、相同的方法。
有人可以指点一下吗?
我的 curl 命令是:
curl -u myID:myPassword X GET http://myServer.ad.prod:9000/api/properties
我认为您需要像这样传递凭据:
$username = "user"
$password = "password"
$authInfo = ("{0}:{1}" -f $username,$password)
$authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo)
$authInfo = [System.Convert]::ToBase64String($authInfo)
$headers = @{Authorization=("Basic {0}" -f $authInfo)}
Invoke-RestMethod -Method Head -Uri "https://pathtowhatever" -ContentType 'text/json' -Headers $headers