REST-API基本身份验证和通过Powershell调用WebRequest

REST-API基本身份验证和通过Powershell调用WebRequest,powershell,.net-core,base64,powershell-core,Powershell,.net Core,Base64,Powershell Core,正在尝试通过Powershell客户端连接到REST-API。在Postman中测试端点时,我一点问题都没有。下面是函数的主要部分(我有一个[pscredential]$Creds参数,用于获取用户名和密码): 由于某种原因,授权标题在我的脚本中与在Postman中不同。我甚至可以从Postman中复制授权标题,并将其粘贴到-Headers参数中,一切正常。我只是不明白我在哪里弄错了。我不能告诉你为什么这不起作用,但我可以建议一些始终适用于我的API的东西: $auth = $username

正在尝试通过Powershell客户端连接到REST-API。在Postman中测试端点时,我一点问题都没有。下面是函数的主要部分(我有一个
[pscredential]$Creds
参数,用于获取用户名和密码):

由于某种原因,
授权
标题在我的脚本中与在Postman中不同。我甚至可以从Postman中复制
授权
标题,并将其粘贴到
-Headers
参数中,一切正常。我只是不明白我在哪里弄错了。

我不能告诉你为什么这不起作用,但我可以建议一些始终适用于我的API的东西:

$auth = $username + ':' + $upassword
$Encoded = [System.Text.Encoding]::UTF8.GetBytes($auth)
$authorizationInfo = [System.Convert]::ToBase64String($Encoded)
$headers = @{"Authorization"="Basic $($authorizationInfo)"}

Invoke-WebRequest -Uri "https://$($HostName)/api/" -Method GET -Headers $headers

如果这不起作用,请使用Invoke Restmethod尝试以下细微差别:

Invoke-RestMethod -Uri "https://$($HostName)/api/" -Method GET -Headers $headers
使用API总是一种冒险。继续努力。:)

我无法告诉您为什么这不起作用,但我可以建议一些始终适用于我的API:

$auth = $username + ':' + $upassword
$Encoded = [System.Text.Encoding]::UTF8.GetBytes($auth)
$authorizationInfo = [System.Convert]::ToBase64String($Encoded)
$headers = @{"Authorization"="Basic $($authorizationInfo)"}

Invoke-WebRequest -Uri "https://$($HostName)/api/" -Method GET -Headers $headers

如果这不起作用,请使用Invoke Restmethod尝试以下细微差别:

Invoke-RestMethod -Uri "https://$($HostName)/api/" -Method GET -Headers $headers

使用API总是一种冒险。继续努力。:)

谢谢你的反馈。我在您的代码段中遇到了同样的问题,
$authorizationInfo
变量的
Base64String
与Postman不同(您的值与我的代码的值相同),因此它不起作用。由于此值“错误”,我得到一个
“提供的凭据无效。”
消息看起来您是对的,这将是一次冒险。它工作正常,我刚刚了解到凭证用户名区分大小写!!每个API似乎都有自己的怪癖,我希望我能给你发一个“很多东西可以尝试”的文档。偶尔我会很幸运,一些新的API可以正常工作,但通常会有一段时间的碰壁会议。:)谢谢你的反馈。我在您的代码段中遇到了同样的问题,
$authorizationInfo
变量的
Base64String
与Postman不同(您的值与我的代码的值相同),因此它不起作用。由于此值“错误”,我得到一个
“提供的凭据无效。”
消息看起来您是对的,这将是一次冒险。它工作正常,我刚刚了解到凭证用户名区分大小写!!每个API似乎都有自己的怪癖,我希望我能给你发一个“很多东西可以尝试”的文档。偶尔我会很幸运,一些新的API可以正常工作,但通常会有一段时间的碰壁会议。:)