Invoke-RestMethod:发送到标头时找不到请求的身份验证数据
Posted
技术标签:
【中文标题】Invoke-RestMethod:发送到标头时找不到请求的身份验证数据【英文标题】:Invoke-RestMethod : Could not find authentication data on request when send to headers 【发布时间】:2019-10-29 19:01:39 【问题描述】:我在 azure devops 版本中添加了 powershell 脚本,并尝试使用带有授权令牌和 xml 文件的 Invoke-WebRequest 发送 POST 请求。
我做错了什么?
我从另一个 POST 请求中获取授权令牌,并尝试使用此令牌创建标头并尝试使用 X 射线端点发送 xml 文件(NUnit XML 结果 - POST /api/v1/import/execution/nunit) https://confluence.xpand-it.com/display/XRAYCLOUD/Import+Execution+Results+-+REST#ImportExecutionResults-REST-NUnitXMLresults
授权令牌,如标头参数 类似powershell参数的内容类型
$bodyForAuth=@"client_id"="...";
"client_secret"="...";
$jsonAuth=Invoke-WebRequest -Uri $urlForAuth -Method POST -Body ($bodyForAuth|ConvertTo-Json) -ContentType "application/json"
$authToken=ConvertFrom-Json -InputObject $jsonAuth
$headers=@ Authorization = "Bearer $authToken"
Invoke-WebRequest -Headers $headers -Uri $urlForXrayApi -Method POST -ContentType "text/xml" -InFile $TestResultsXmlPath
我有错误:“Invoke-RestMethod:找不到请求的身份验证数据”
我也尝试这样发送:
$headers=@ Authorization = "Bearer $authToken";"Content-Type"="text/xml"
Invoke-WebRequest -Headers $headers -Uri $urlForXrayApi -Method POST -InFile $TestResultsXmlPath
也有同样的错误:"Invoke-RestMethod : Could not find authentication data on request"
但是如果我发送这样的 POST 请求(没有 Content-Type):
$bodyForAuth=@"client_id"="...";
"client_secret"="...";
$jsonAuth=Invoke-WebRequest -Uri $urlForAuth -Method POST -Body ($bodyForAuth|ConvertTo-Json) -ContentType "application/json"
$authToken=ConvertFrom-Json -InputObject $jsonAuth
$headers=@ Authorization = "Bearer $authToken"
Invoke-WebRequest -Headers $headers -Uri $urlForXrayApi -Method POST -InFile $TestResultsXmlPath
我有服务器错误:"Invoke-RestMethod : "error":"Missing data in the nunit results import request""
Power Shell v. 5.1
为什么当我发送到 headers 服务器时无法精细授权数据?
【问题讨论】:
【参考方案1】:我需要括号,所以我将$TestResultsXmlPath
更改为$(TestResultsXmlPath)
Invoke-WebRequest `
-Headers $headers `
-Uri $urlForXrayApi `
-Method POST `
-InFile $(TestResultsXmlPath)
【讨论】:
以上是关于Invoke-RestMethod:发送到标头时找不到请求的身份验证数据的主要内容,如果未能解决你的问题,请参考以下文章
尝试安装 pg gem 时找不到'libpq-fe.h 标头
归档应用程序时找不到 Swift Objective-C 标头