Как передать параметр JSON методом POST на powershell 2.0? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть код Powershell, который отлично работает в PowerShell версии 3.

Мне также нужно запустить этот код в PowerShell 2.0.Но Invoke-WebRequest не поддерживается в PS версии 2.0.

Пожалуйста, помогите мне!

$params = "metrics[]=failed:count"
$failed = (Invoke-WebRequest -Uri http://localhost:9000/stats -Method POST -Body $params -ContentType "application/json").Content
$x = $failed | ConvertFrom-Json

1 Ответ

1 голос
/ 30 апреля 2019

Не проверено, но я думаю, что это может помочь:

$params = "metrics[]=failed:count"

$result = @{}
try{
    $request = [System.Net.WebRequest]::Create('http://localhost:9000/stats')
    $request.Method = 'POST'
    $request.ContentType = 'application/json'
    $request.Accept = "application/json"

    $body = [byte[]][char[]]$params
    $upload = $request.GetRequestStream()
    $upload.Write($body, 0, $body.Length)
    $upload.Flush()
    $upload.Close()

    $response = $request.GetResponse()
    $stream = $response.GetResponseStream()
    $streamReader = [System.IO.StreamReader]($stream)

    $result['StatusCode']        = $response.StatusCode
    $result['StatusDescription'] = $response.StatusDescription
    $result['Content']           = $streamReader.ReadToEnd()

    $streamReader.Close()
    $response.Close()
}
catch{
    throw
}

# I suggest checking $result.StatusCode here first..
$x = $result.Content | ConvertFrom-Json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...