PowerShell:
HTTP 요청 보내기

How to: (어떻게 하나요?)

PowerShell에서 HTTP 요청을 보내는 가장 간단한 방법은 Invoke-WebRequest 명령어를 사용하는 거에요. 예시를 들어 볼까요?

# GET 요청
$response = Invoke-WebRequest -Uri "http://example.com/api/data"
$response.Content

# POST 요청
$body = @{ key1 = 'value1'; key2 = 'value2' } | ConvertTo-Json
$response = Invoke-WebRequest -Uri "http://example.com/api/post" -Method POST -Body $body -ContentType "application/json"
$response.Content

실행 예시:

[
  {
    "id": 1,
    "name": "홍길동",
    "email": "[email protected]"
  }
]

Deep Dive (심층 탐구)

PowerShell 2.0 버전부터 Invoke-WebRequestInvoke-RestMethod 같은 명령어가 도입되었어요. Invoke-RestMethod는 JSON, XML 같은 데이터를 자동으로 파싱해줘서 RESTful API와 작업할 때 더 편리해요. 대안으로는 .NET의 System.Net.Http.HttpClient를 사용할 수 있고, 이를 통해 더 복잡한 HTTP 요청을 할 수 있어요.

예를 들어, 고급 HTTP 헤더를 설정하거나 인증 작업을 필요로 할 때 HttpClient를 사용하면 좋습니다. PowerShell 6.0 이후에 나온 버전에서는 Invoke-RestMethodInvoke-WebRequest 모두 크로스 플랫폼 지원을 갖췄죠. 이제는 PowerShell Core를 사용하여 리눅스나 macOS에서도 동일한 명령어를 실행할 수 있습니다.

See Also (더 보기)