Postman и VSTS Inline Powershell возвращают разные значения

Я выполняю запрос как в VSTS, так и в Postman. В Postman я использую базовую аутентификацию и ввожу свое имя пользователя и пароль. В VSTS я использую шаг Inline Azure Powershell. Код VSTS:

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

Invoke-RestMethod -Method Get -Uri $Uri -ContentType "application/json; charset=utf-8; api-version=4.0-preview.4" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

После запуска запроса в VSTS я записываю и вывожу $uri и копирую его в Postman. В теле запроса Postman я получаю «count»: «1» и ожидаемые значения. В VSTS при точно таком же запросе я получаю «count»: «0». В чем причина разницы?

Иногда вместо разницы в «количестве» я получаю те же данные, но их не видно. В VSTS это будет "{@{id=532; name=TestBuild_2017.09.28...", а в Postman будут видны все данные, такие как "id", "name" и "createdOn". Могу ли я изменить способ просмотра в VSTS, чтобы все было видно?

Uri: https://xx.vsrm.visualstudio.com/xx/xx/_apis/release/releases?api-version=4.0-preview.4&statusFilter=successful&$top=1&searchText=xx


person user3364161    schedule 28.09.2017    source источник
comment
Что вы имеете в виду, когда используете его в VSTS? Как часть расширения? Во время сборки или развертывания?   -  person Daniel Mann    schedule 28.09.2017
comment
Как встроенный Azure Powershell в качестве шага сборки. Также обновлено описание поста.   -  person user3364161    schedule 28.09.2017
comment
Что такое настоящий REST API ($Uri)? Вы используете один и тот же аккаунт?   -  person starian chen-MSFT    schedule 29.09.2017
comment
Я обновил пост с Uri   -  person user3364161    schedule 29.09.2017
comment
Вы решаете проблему с моим решением?   -  person starian chen-MSFT    schedule 04.10.2017
comment
К сожалению, я этого не сделал. Некоторые запросы по-прежнему показывают количество 0 в VSTS и 1 в Postman, но я нашел обходной путь, который не использует запрос   -  person user3364161    schedule 04.10.2017


Ответы (1)


Причина в том, что символ $ является ключевым словом в PowerShell, вам нужно экранировать его, используя грави-акцент `.

Используя https://xx.vsrm.visualstudio.com/xx/xx/_apis/release/releases?api-version=4.0-preview.4&statusFilter=successful&`$top=1&searchText=xx.

person starian chen-MSFT    schedule 02.10.2017