PowerFlex 3.x Volání rozhraní REST API "SetPassword" vrátí hodnotu "400 Bad Request".
Summary: Při použití prostředí PowerShell k interakci s řešením VxFlexOS/PowerFlex REST API vrátí funkce "setPassword" zprávu "400 bad request". Jiné funkce, například "resetPassword", však fungují správně. Scénář: Použijte vlastní kód k nastavení hesla přihlášených uživatelů pomocí funkce "setPassword" v rozhraní REST API. Brána VxFlexOS/PowerFlex vrátí chybný kód HTML požadavku "400". Ostatní funkce však stále fungují bez chyb. ...
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
V protokolech nebo v příkazovém řádku se zobrazí něco podobného následujícímu, že "Vzdálený server vrátil chybu: (400) Chybný požadavek":


Cause
Některé funkce s větší částí textu, například "setPassword" (která vyžaduje objekt oldPassword plus hodnota a objekt newPassword plus hodnota), vyžadují, aby záhlaví obsahovalo také typ obsahu "application/json", aby rozhraní VxFlex REST API správně interpretovalo volání.
Resolution
Chcete-li tento problém vyřešit, zadejte typ obsahu s webovým požadavkem, například následující kód v PowerShellu vyžaduje, aby byl příspěvek "-ContentType "application/json" přidaný do metody Invoke-WebRequest pro úspěšný příspěvek:
#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
Totéž lze provést z Curl nebo jiných programovacích jazyků:
curl -v -k -X POST -H "Content-Type:application/json" ...
Dotčené verze
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.