Очень запутался в этом вопросе. Вот с чем я сейчас имею дело.
У меня есть конечная точка 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, однако из-за большого объема данных, которые мне нужно обработать, это не очень хороший вариант