Как правильно отправлять данные JSON через Net.WebRequest - PowerShell - PullRequest
2 голосов
/ 21 августа 2010

Я работаю над сценарием powershell для отправки данных json в интерфейс REST и каждый раз получаю (400) неверный запрос.Я новичок в этом, и неясно, если / как я должен кодировать данные.Я знаю, что должен установить тип контента для application / json, но какой вариант кодирования я использую, что вызывает мою проблему, и если да, то что я должен использовать?

$cred = New-Object System.Net.NetworkCredential -ArgumentList $authUser,$authPass
$url = 'http://localhost:8080/alfresco/service/api/people'
$request = [Net.WebRequest]::Create($url)

$request.ServicePoint.Expect100Continue = $false

$request.Credentials = $cred
$request.ContentType = "application/json"
$request.Method = "POST"

$data = (New-Object PSObject |
    Add-Member -PassThru NoteProperty username $username |
    Add-Member -PassThru NoteProperty firstName $firstname |
    Add-Member -PassThru NoteProperty lastName $lastname |
    Add-Member -PassThru NoteProperty email $email |
    Add-Member -PassThru NoteProperty password $password
) | ConvertTo-JSON

$bytes = [System.Text.Encoding]::ASCII.GetBytes($data)

$request.ContentLength = $bytes.Length

$requestStream = [System.IO.Stream]$request.GetRequestStream()
$requestStream.write($bytes, 0, $bytes.Length)

$response = $request.GetResponse()

1 Ответ

1 голос
/ 23 августа 2010

После $requestStream.Write() введите $requestStream.Close(), чтобы посмотреть, удалит ли это данные на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...