PowerFlex 3.x "SetPassword" REST API-kallet returnerer "400 ugyldig forespørsel"
Summary: Når du bruker Powershell til å samhandle med VxFlexOS/PowerFlex REST API, returnerer funksjonen "setPassword" en ugyldig forespørsel på 400. Andre funksjoner fungerer imidlertid bra, for eksempel "resetPassword." Scenario: Bruk egendefinert kode for å angi passordet for påloggede brukere med funksjonen "setPassword" i REST API. VxFlexOS/PowerFlex Gateway returnerer en HTML-kode med ugyldig forespørsel på "400". Men andre funksjoner utfører fortsatt uten feil. ...
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 loggene eller i kommandolinjen vil noe som ligner på følgende vise at "Den eksterne serveren returnerte en feil: (400) Dårlig forespørsel":


Cause
Noen funksjoner som har større nyttelast, for eksempel "setPassword" (som krever oldPassword-objektet plus-verdien og newPassword-objektet plussverdien) krever at overskriften også inkluderer innholdstypen "application/json" for at VxFlex REST API skal tolke innleggsanropet riktig.
Resolution
Hvis du vil løse dette problemet, leverer du innholdstypen med webforespørselen, for eksempel krever koden nedenfor i PowerShell "-ContentType" application/json "lagt til i Invoke-WebRequest-metoden for at innlegget skal 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 gjøres fra Curl eller andre programmeringsspråk:
curl -v -k -X POST -H "Content-Type:application/json" ...
Berørte versjoner
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.