在Windows PowerShell 3.0中引入了Invoke-RestMethod cmdlet。PowerShell WebRequest POST
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
參數)發送請求正文的能力,從而擴展此代碼示例?
謝謝,Trevor!這是我認爲應該實施的方式,但不知道這是最好的方式 –
不客氣,@VadimGremyachev :)很高興這有助於你! –
@TrevorSullivan如果我有一個JSON的話,身體會是什麼樣子? – Campinho