URL обратной косой черты вызова API REST, выполненного с помощью Invoke-RestMethod, генерирует ошибку - PullRequest
0 голосов
/ 07 мая 2018

У меня есть фрагмент кода, подобный следующему:

$url = 'https://foo/accounts/thing%5CBSTNTZ-MTRFKR'
$request_content_type = 'application/xml'

$response_checkout = Invoke-RestMethod `
-Credential $credential `
-Method Get `
-Uri $url `
-ContentType $request_content_type

Invoke-RestMethod создает следующее исключение:

PSMessageDetails      : 
Exception             : System.Net.WebException: The remote server returned an error: (404) Not Found.
                           at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
                           at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()
TargetObject          : System.Net.HttpWebRequest
CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
ErrorDetails          : Account not found: ?\thing
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}

Кажется, виновником является обратная косая черта в имени учетной записи (вещь \ BSTNTZ-MTRFKR). Я кодирую обратную косую черту с% 5c, используя [System.Uri]::EscapeUriString(). Есть ли какой-то другой способ добавить черный слеш в URI?

Следующая ссылка приведет вас к ссылке на API для API, который я вызываю.

https://docops.ca.com/ca-privileged-identity-management/12-8/en/integrating/rest-based-api/checkout-an-account

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...