Invoke-RestMethod: не удалось найти данные аутентификации по запросу при отправке в заголовки - PullRequest
2 голосов
/ 15 июня 2019

Я добавил скрипт powershell в выпуске azure devops и пытаюсь отправить POST-запрос, используя Invoke-WebRequest с токеном авторизации и XML-файлом.

Что я делаю не так?

Я получаю токен авторизации из другого запроса POST и пытался создать заголовки с помощью этого токена и пытаюсь отправить xml-файл с помощью конечной точки рентгеновского излучения (результаты NUnit XML - POST / api / v1 / import / execute / nunit) https://confluence.xpand -it.com / дисплей / XRAYCLOUD / Импорт + Execution + Результаты + - + 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

Почему при отправке на заголовки сервер не может оштрафовать данные авторизации?

1 Ответ

0 голосов
/ 19 июня 2019

Я пропустил "(" и ")" в запросе

Invoke-WebRequest -Headers $headers -Uri $urlForXrayApi -Method POST -InFile $TestResultsXmlPath

должен

Invoke-WebRequest -Headers $headers -Uri $urlForXrayApi -Method POST -InFile $(TestResultsXmlPath)

Изменить $TestResultsXmlPath на$(TestResultsXmlPath)

...