Powershell WebRequest GET Успешен, но УДАЛИТЬ не удается с 404 - PullRequest
0 голосов
/ 09 апреля 2019

Очень запутался в этом вопросе. Вот с чем я сейчас имею дело.

У меня есть конечная точка API, которая выглядит следующим образом /subscriptions/:id. Эта конечная точка служит одновременно конечной точкой GET и DELETE. Когда я запускаю GET, он возвращает объект, как обычно, но изменение действия на DELETE возвращает мне 404 для того же ресурса, который был только что возвращен в GET, я не знаю почему.

Вот мой код Powershell.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$user         = '*********'
$pass         = ConvertTo-SecureString '*********' -AsPlainText -Force
$cred         = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $pass
$base         = "https://*********.hosted.xmatters.com/api/xm/1"


$del_path = "$base/subscriptions/********uuid***********"
$path     = "$base/subscriptions"
$payload  = @{
    id    = '********uuid***********'
    description = '**** NEW DESCRIPTION ****'
}

$params = $payload | ConvertTo-Json

// **** SUCCESS
$thing = Invoke-WebRequest -Credential $cred -Uri $del_path -Method GET

// **** FAILS
$thing = Invoke-WebRequest -Credential $cred -Uri $del_path -Method DELETE

// **** FAILS
$thing = Invoke-WebRequest -Credential $cred -Uri $path -Method POST -Body $params -ContentType 'application/json'

Итак, как упоминалось ранее, я ПОЗИТИВНО, что ресурс существует из API. Я могу получить его при запуске GET, но и POST (для обновления), и DELETE выдают 404 ошибки. Вот ошибка, которую я получаю.

Invoke-WebRequest : The remote server returned an error: (404) Not Found.
At \\mmfile\ct32373$\Appsense\Desktop\Line of Business Revisions.ps1:24 char:10
+ $thing = Invoke-WebRequest -Credential $cred -Uri $del_path -Method D ...
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebReque 
   st) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Comman 
   ds.InvokeWebRequestCommand

Странно то, что я могу успешно выполнить запрос DELETE с помощью POSTMAN, однако из-за большого объема данных, которые мне нужно обработать, это не очень хороший вариант

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