2017-03-27 7 views
0

Ich versuche, die PUT Methode in meinem REST API zu verwenden, und ich glaube, ich habe Syntaxprobleme. Bisher ist es das, was ich habe:Invoke-RestMethod REST API PUT Methode

$url3 = "myurl" 

$contentType3 = "application/json"  
$basicAuth3 = get_token 
$headers3 = @{ 
    Authorization = $basicAuth3 
}; 
$data = @{   
    userId = "_39_1"; 
    courseId = "_3_1"; 
    availability = { 
     available = "Yes" 
    }; 
    courseRoleId = "Student" 
}; 
$json = $data | ConvertTo-Json; 
Invoke-RestMethod -Method PUT -Uri $url3 -ContentType $contentType3 -Headers $headers3 -Body $json; 

Ich glaube nicht, die Invoke-RestMethod Lage ist, die $json Variable zu lesen, und das ist, warum es mir einen Fehler geben. Irgendwelche Vorschläge?

Der Fehler Ich erhalte ist die folgende:

Invoke-RestMethod : The remote server returned an error: (400) Bad Request. At E:\PowerShell\Get_User_Enroll.ps1:62 char:1 + Invoke-RestMethod -Method PUT -Uri $url3 -ContentType $contentType3 -Headers $he ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

Best,

+0

'Verfügbarkeit = @ {verfügbar = "Yes"}' – 4c74356b41

+0

Das tat es nicht, immer noch den gleichen Fehler mit – SPedraza

+0

Ich habe nie gesagt, wäre es 'do it' Ich habe gerade offensichtliche Fehler hingewiesen, Bitte korrigieren Sie auch Ihre Formatierung – 4c74356b41

Antwort

3

Sie haben eine andere Hash-Tabelle für die Verfügbarkeit zu erstellen. Sie haben die @ vor dem { des Verfügbarkeitsobjekts verpasst.

$url3 = "myurl"; 

$contentType3 = "application/json"  
$basicAuth3 = get_token 
$headers3 = @{ 
    Authorization = $basicAuth3 
}; 
$data = @{   
    userId = "_39_1"; 
    courseId = "_3_1"; 
    availability = @{ 
     available = "Yes" 
    }; 
    courseRoleId = "Student" 
}; 
$json = $data | ConvertTo-Json; 
Invoke-RestMethod -Method PUT -Uri $url3 -ContentType $contentType3 -Headers $headers3 -Body $json; 
+0

Ich war so nah, danke viel rufer! – SPedraza

+0

Hallo, ich sehe, du bist neu in SO. Wenn Sie der Meinung sind, dass eine Antwort das Problem gelöst hat, markieren Sie es als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies hilft, den Fokus auf ältere SO zu richten, die immer noch keine Antworten haben – rufer7