【发布时间】:2014-04-07 19:39:17
【问题描述】:
在 Windows PowerShell 3.0 中引入了Invoke-RestMethod cmdlet。
Invoke-RestMethod cmdlet 接受-Body<Object> 参数来设置请求的正文。
由于某些限制Invoke-RestMethod cmdlet 无法在我们的案例中使用。另一方面,文章InvokeRestMethod for the Rest of Us 中描述的替代解决方案适合我们的需求:
$request = [System.Net.WebRequest]::Create($url)
$request.Method="Get"
$response = $request.GetResponse()
$requestStream = $response.GetResponseStream()
$readStream = New-Object System.IO.StreamReader $requestStream
$data=$readStream.ReadToEnd()
if($response.ContentType -match "application/xml") {
$results = [xml]$data
} elseif($response.ContentType -match "application/json") {
$results = $data | ConvertFrom-Json
} else {
try {
$results = [xml]$data
} catch {
$results = $data | ConvertFrom-Json
}
}
$results
但它仅适用于 GET 方法。
您能否建议如何扩展此代码示例,使其能够使用POST 方法发送请求正文(类似于Invoke-RestMethod 中的Body 参数)?
【问题讨论】:
标签: powershell