此curl命令按预期工作:
curl -H "X-Api-Key:j65k423lj4k2l3fds" `
-X PUT `
-d "alerts_enabled=true" `
https://some/working/file.xml
如何使用Invoke-WebRequest
在PS中本机重新创建此内容?我试过了
Invoke-WebRequest -Headers @{"X-Api-Key" = "j65k423lj4k2l3fds"} `
-Method PUT `
-Body "alerts_enabled=true" `
-Uri https://some/working/file.xml
我也尝试为所有参数创建对象(例如$headers = @{"X-Api-Key" = "Key:j65k423lj4k2l3fds"}
并传递-Headers $headers
)。
由于
答案 0 :(得分:16)
尝试添加参数-ContentType,例如:
Invoke-WebRequest -Headers @{"X-Api-Key" = "j65k423lj4k2l3fds"} -Method PUT `
-Body "alerts_enabled=true" -Uri https://some/working/file.xml `
-ContentType application/x-www-form-urlencoded
这导致一个看起来像这样的请求(来自Fiddler):
PUT http://some/working/file.xml HTTP/1.1
X-Api-Key: j65k423lj4k2l3fds
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 6.2; en-US) WindowsPowerShell/5.0.9701.0
Content-Type: application/x-www-form-urlencoded
Host: some
Content-Length: 19
Expect: 100-continue
alerts_enabled=true
为了进行测试,我将URL从https更改为http。如果这不起作用,请下载Fiddler并在使用curl查看RAW请求时查看不同的内容。
答案 1 :(得分:7)
使用invoke-webrequest让它本地工作。 powershell guru在这里工作帮助了我。切换到New Relic API版本2(可在https://rpm.newrelic.com/api/explore获得),它使用JSON而不是xml,并进行了一些sytax调整。
$json = @"{"alert_policy":[{"enabled":"true"}]"@
$headers = @{}
$headers["X-Api-Key"] = "j65k423lj4k2l3fds"
Invoke-WebRequest -Uri "https://some/working/file.json" -Body $json -ContentType "application/json" -Headers $headers -Method Post
答案 2 :(得分:0)
这对我有用in Powershell using the curl
alias to Invoke-WebRequest
...
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("0377778888"));