PowerFlex 3.x Виклик REST API "SetPassword" повертає "400 поганих запитів"
Summary: Під час використання Powershell для взаємодії з API VxFlexOS/PowerFlex REST функція "setPassword" повертає "400 поганих запитів". Однак інші функції працюють нормально, наприклад "resetPassword". Сценарій: Використовуйте спеціальний код для встановлення пароля користувача, який увійшов у систему, за допомогою функції «setPassword» у REST API, шлюз VxFlexOS/PowerFlex повертає неправильний запит HTML-код «400». Але інші функції все одно виконують без помилок. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
У журналах або в командному рядку щось схоже на наступне покаже, що "Віддалений сервер повернув помилку: (400) Погане прохання»:


Cause
Деякі функції, які мають більші корисні навантаження тіла, такі як "setPassword" (який вимагає об'єкт oldPassword плюс значення та об'єкт newPassword плюс значення), вимагають, щоб заголовок також включав тип вмісту "application/json" для VxFlex REST API для правильної інтерпретації виклику повідомлення.
Resolution
Щоб вирішити цю проблему, надайте тип вмісту з веб-запитом, наприклад, наведений нижче код у PowerShell вимагає додавання "-ContentType "application/json" до методу Invoke-WebRequest, щоб повідомлення було успішним":
#format the user/pw hash in BASE64 to get it parsed by REST
$head = @{"Authorization" = "Basic "+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("admin:Scaleio1234"))}
$head
#get token for authorization.
$r = Invoke-WebRequest -Uri https://192.168.199.76/api/login -Method Get -Headers $head -UseBasicParsing
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $r.content.replace('"','')))
$header = @{'Authorization' = "Basic $token"}
$payload2 = @{
oldPassword = 'Scaleio1234'
newPassword = 'Scaleio123'
}
$body2 = Convertto-JSON -InputObject $payload2
Invoke-WebRequest -Uri https://192.168.199.76/api/instances/User/action/setPassword -Headers $header -Method Post -ContentType "application/json" -Body $body2
Те ж саме можна зробити з Curl або інших мов програмування:
curl -v -k -X POST -H "Content-Type:application/json" ...
Версії, на які це вплинуло
Технологія PowerFlex 3.x
Affected Products
PowerFlex SoftwareProducts
PowerFlex rack, PowerFlex Appliance, PowerFlex custom nodeArticle Properties
Article Number: 000194607
Article Type: Solution
Last Modified: 14 Apr 2025
Version: 2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.