我想在powershell中使用invoke-restmethod/invoke-webrequest执行REST API,但是当我通过Json输入时失败
我想在使用invoke-restmethod/invoke-webrequest的powershell中执行REST API,但是当我传递Json时失败投入。它与CURL命令一起使用。我想在powershell中使用invoke-restmethod/invoke-webrequest执行REST API,但是当我通过Json输入时失败
卷曲-v --user管理员:密码-H接受:应用/ JSON -H内容类型:应用程序/ 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” 的
$传球= “密码”
$ secpasswd =的ConvertTo-SecureString的$用户-AsPlainText -Force $名气=新物体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输入的组合,但没有去。任何帮助?
我有固定的问题,通过以下方式解决问题的我,有需要的额外的“”
$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