PowerFlex 3.x SetPassword" REST API Çağrısı "400 Hatalı İstek" Döndürüyor

Summary: VxFlexOS/PowerFlex REST API ile etkileşim kurmak için Powershell'i kullanırken "setPassword" işlevi "400 hatalı istek" döndürüyor. Ancak, "resetPassword" gibi diğer işlevler iyi çalışır. Senaryo: Oturum açmış kullanıcıların parolasını REST API'de "setPassword" işleviyle ayarlamak için özel kod kullanın. VxFlexOS/PowerFlex Ağ Geçidi, hatalı istek olarak "400" HTML kodu döndürür. Ancak diğer işlevler hala hatasız çalışır. ...

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

Günlüklerde veya komut satırında aşağıdakine benzer bir şey gösterilir: "Uzak sunucu bir hata döndürdü: (400) Bad Request":

image.png

Cause

setPassword" (oldPassword nesnesi artı değerini ve newPassword nesnesi artı değerini gerektirir) gibi daha büyük gövde yüklerine sahip bazı işlevler, VxFlex REST API'nin post çağrısını doğru bir şekilde yorumlayabilmesi için başlığın "application/json" içerik türünü de içermesini gerektirir.

Resolution

Bu sorunu çözmek için içerik türünü Web İsteği ile sağlayın, örneğin PowerShell'deki aşağıdaki kod, gönderinin başarılı olması için Invoke-WebRequest yöntemine "-ContentType "application/json" " eklenmesini gerektirir":

#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

Aynı şey Curl veya diğer programlama dillerinden de yapılabilir:

curl -v -k -X POST -H "Content-Type:application/json" ...

 

Etkilenen Sürümler

PowerFlex 3.x

Affected Products

PowerFlex Software

Products

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node
Article 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.