PowerShell:
Отправка HTTP-запроса
Как это сделать:
Вот простое руководство по отправке простого GET-запроса:
$response = Invoke-RestMethod -Uri 'https://api.example.com/data' -Method Get
Write-Output $response
И если вы хотите отправить некоторые данные методом POST:
$body = @{
'name' = 'Джейн Доу'
'occupation' = 'Космический рейнджер'
}
$response = Invoke-RestMethod -Uri 'https://api.example.com/users' -Method Post -Body ($body | ConvertTo-Json)
Write-Output $response
Пример вывода:
name occupation
---- ----------
Джейн Доу Космический рейнджер
Погружение в детали:
Отправка HTTP-запроса возвращает нас к заре веб-разработки. Вы вступаете в диалог с вебом на его родном языке, HTTP. Cmdlet Invoke-RestMethod
в PowerShell является инструментом выбора здесь. До появления Invoke-RestMethod
, Invoke-WebRequest
был популярен, и он все еще существует для получения более детальных ответов.
Если вам захочется экспериментировать, у вас есть альтернативы, такие как curl
или класс HttpClient
в .NET. Помните, что при использовании Invoke-RestMethod
, он является оберткой вокруг классов и методов HttpClient
в .NET, предлагая простоту, но жертвуя некоторым контролем на низком уровне.
С точки зрения реализации, помните, что HTTP-запросы поддерживают различные методы, такие как GET
, POST
, PUT
и т. д. Настраивайте заголовки с помощью -Headers
, и управляйте тайм-аутами и аутентификацией с помощью дополнительных параметров по мере необходимости. Всегда проверяйте входные данные, если вы используете контент, созданный пользователями, чтобы избежать атак инъекциями.