PowerShell:
שליחת בקשת HTTP
איך לעשות:
שימוש ב-Invoke-WebRequest
לשליחת בקשה GET:
$response = Invoke-WebRequest -Uri "http://example.com/api/data"
$response.Content
תוצאה:
{ "id": 1, "name": "A Thing", "status": "Awesome" }
שליחת בקשה POST עם גוף בקשה:
$body = @{
id=101
value="Cool Data"
} | ConvertTo-Json
$response = Invoke-WebRequest -Uri "http://example.com/api/update" -Method Post -Body $body -ContentType "application/json"
$response.StatusCode
תוצאה:
200
פה הקבלת הקוד תשובה שמציין שהבקשה הצליחה.
עיון מעמיק:
Invoke-WebRequest
הוא חלק מ-PowerShell מגרסה 3.0 ומעלה, מאפשר שליחת בקשות רשת מסוגים שונים. לפניו, הייתה צורך להשתמש בעטיפות של .NET.
אלטרנטיביות כמו curl
או Invoke-RestMethod
(לAPIs) קיימות ומתאימות לתרחישים שונים. בשונה מ-Invoke-WebRequest
, Invoke-RestMethod
מפרסר את התשובה לאובייקט פי.אס. מפשט את השימוש בנתונים.
בהיבט של יישום, כששולחים בקשות זה חשוב לטפל בHeaders, HTTP Methods, ולנהל סשנים עם cookies למיניהם כדי להבטיח תקשורת בטוחה ויציבה.