Я пытаюсь выполнить REST API в PowerShell, используя invoke-restmethod / invoke-webrequest, но не смог при передаче входных данных Json

Я пытаюсь выполнить REST API в PowerShell с помощью invoke-restmethod / invoke-webrequest, но не могу передать входные данные Json. Работает с командой CURL.

curl -v --user admin: password -H Accept: application / json -H Content-Type: application / json -d "@C: \ data \ test.json" -X POST http://10.11.60.88:8081/artifactory/api/distribute

Содержимое Test.json показано ниже

{

"targetRepo" : "ECSDigital_Bintray", 
"packagesRepoPaths" : ["SNOW/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar"] 

}

Я пишу ниже PowerShell, и это дает мне серию ошибок.

$ user = "admin"

$ pass = "пароль"

$ secpasswd = ConvertTo-SecureString $ user -AsPlainText -Force $ cred = New-Object System.Management.Automation.PSCredential ($ pass, $ secpasswd)

$ postParams = @ {targetRepo = 'SNOW'; packagesRepoPaths = '["org / apache / maven / maven-artifact / 3.3.9 / maven-artifact-3.3.9.jar"]'}

Invoke-WebRequest -Uri "http://10.11.60.88:8081/artifactory/api/distribute "-Credential $ cred -Method Post -ContentType" application / json "-Body $ postParams

Ошибка: Invoke-WebRequest: удаленный сервер возвратил ошибку: (400) неверный запрос.

Я пробовал несколько комбинаций входов json, но не пошел. Любая помощь?


person mansing shinde    schedule 05.11.2016    source источник


Ответы (1)


Я устранил проблему, мои проблемы были решены следующим образом, потребовались дополнительные ""

$params = @{

uri = $ARTIFACTORY_PROTOCOL+"://"+$ARTIFACTORY_IP+":"+$ARTIFACTORY_PORT+"/artifactory/api/distribute";

Method = 'POST';

Headers = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($ARTIFACTORY_USERNAME):$($ARTIFACTORY_PASSWORD)"));"Accept" = 'application/json';"Content-Type" = 'application/json'}

#body = @{""targetRepo"" : ""$DISTRIBUTION_REPOSITORY"", ""packagesRepoPaths"" : ""$ARTIFACTORY_PATH""} 

}

$json = "{
           ""targetRepo"":""$DISTRIBUTION_REPOSITORY"",
           ""packagesRepoPaths"":[""$ARTIFACTORY_PATH""]
         }"

$var = invoke-restmethod @params -Body $json
echo $var
person mansing shinde    schedule 05.11.2016