PowerFlex 3.x "SetPassword" REST API-kaldet returnerer "400 Bad Request"
Summary: Når du bruger Powershell til at interagere med VxFlexOS/PowerFlex REST API, returnerer funktionen "setPassword" en "400 bad request". Andre funktioner fungerer dog fint, såsom "resetPassword." Scenarie: Brug brugerdefineret kode til at indstille adgangskoden for brugere, der er logget på, med funktionen "setPassword" i REST API – VxFlexOS/PowerFlex Gateway returnerer en "400" HTML-kode for en dårlig anmodning. Men andre funktioner fungerer stadig uden fejl. ...
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
I logfilerne eller i kommandolinjen viser noget, der ligner følgende, at "Fjernserveren returnerede en fejl: (400) Dårlig anmodning":


Cause
Nogle funktioner, der har større kropsdata, såsom "setPassword" (som kræver oldPassword-objektet plus værdi og newPassword-objektet plus værdi), kræver, at overskriften også indeholder indholdstypen "application/json", for at VxFlex REST API kan fortolke efterkaldet korrekt.
Resolution
For at løse dette problem skal du angive indholdstypen med webanmodningen, f.eks. kræver nedenstående kode i PowerShell "-ContentType "application/json" ", der er føjet til Invoke-WebRequest-metoden, for at indlægget kan lykkes":
#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
Det samme kan gøres fra Curl eller andre programmeringssprog:
curl -v -k -X POST -H "Content-Type:application/json" ...
Påvirkede versioner
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.