Как сделать запрос POST с использованием Powershell, если у тела есть параметр @type Я хочу сделать запрос POST в PowerShell. Ниже перечислены детали тела в Postman. {"@type":"login", "username":"[email protected]", "password":"yyy" } Как передать это в PowerShell? Ответ 1 Вы должны быть в состоянии сделать следующее: $params = @{"@type"="login"; "username"="[email protected]"; "password"="yyy"; } Invoke-WebRequest -Uri http://foobar.com/endpoint -Method POST -Body $params Это будет опубликовать тело, как вы указали. Ответ 2 Используйте Invoke-RestMethod для использования REST-API. Сохраните JSON в строке и используйте это как тело, например: $JSON = @' {"@type":"login", "username":"[email protected]", "password":"yyy" } '@ $response = Invoke-RestMethod -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json" Если вы используете Powershell 3, я знаю, что были проблемы с Invoke-RestMethod, но вы можете использовать Invoke-WebRequest в качестве замены: $response = Invoke-WebRequest -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json" Если вы не хотите писать свой JSON каждый раз, вы можете использовать хэш-таблицу и использовать PowerShell, чтобы преобразовать ее в JSON, прежде чем отправлять ее. Пример. $JSON = @{ "@type" = "login" "username" = "[email protected]" "password" = "yyy" } | ConvertTo-Json
Ответ 1 Вы должны быть в состоянии сделать следующее: $params = @{"@type"="login"; "username"="[email protected]"; "password"="yyy"; } Invoke-WebRequest -Uri http://foobar.com/endpoint -Method POST -Body $params Это будет опубликовать тело, как вы указали.
Ответ 2 Используйте Invoke-RestMethod для использования REST-API. Сохраните JSON в строке и используйте это как тело, например: $JSON = @' {"@type":"login", "username":"[email protected]", "password":"yyy" } '@ $response = Invoke-RestMethod -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json" Если вы используете Powershell 3, я знаю, что были проблемы с Invoke-RestMethod, но вы можете использовать Invoke-WebRequest в качестве замены: $response = Invoke-WebRequest -Uri "http://somesite.com/oneendpoint" -Method Post -Body $JSON -ContentType "application/json" Если вы не хотите писать свой JSON каждый раз, вы можете использовать хэш-таблицу и использовать PowerShell, чтобы преобразовать ее в JSON, прежде чем отправлять ее. Пример. $JSON = @{ "@type" = "login" "username" = "[email protected]" "password" = "yyy" } | ConvertTo-Json