PowerShell:
Wysyłanie żądania HTTP
How to: (Jak to zrobić?)
Wysłanie prostej prośby GET do serwisu:
$response = Invoke-RestMethod -Uri 'https://jsonplaceholder.typicode.com/todos/1' -Method Get
$response
Przykładowy wynik:
userId : 1
id : 1
title : delectus aut autem
completed : false
Wysyłanie danych metodą POST:
$uri = 'https://jsonplaceholder.typicode.com/posts'
$body = @{
title = 'foo'
body = 'bar'
userId = 1
}
$response = Invoke-RestMethod -Uri $uri -Method Post -Body ($body | ConvertTo-Json) -ContentType 'application/json'
$response
Przykładowy wynik:
userId : 1
id : 101
title : foo
body : bar
Deep Dive (Dogłębna analiza)
Invoke-RestMethod to dość nowe rozwiązanie w PowerShellu. Przed jego pojawieniem się, zadanie wykonałbyś z WebClient lub HttpWebRequest. Świat się zmienia, HTTP/2 i HTTP/3 wkraczają, lecz Invoke-RestMethod jest wystarczająco elastyczny, by podążać za tym.
Alternatywy, jak cURL czy POSTMAN, są dobre do testowania, ale nie zawsze wygodne w skryptach. Invoke-RestMethod może też używać autoryzacji, nagłówków HTTP, a nawet obsługiwać sesje związane z ciasteczkami.
Co więcej, obsługa błędów: jeżeli zapytanie się nie powiedzie, Invoke-RestMethod może zwrócić wyjątek z HttpErrorResponseException zawierający status odpowiedzi oraz treść błędu.