HTTPリクエストの送信

PowerShell:
HTTPリクエストの送信

How to: (方法)

PowerShellでHTTPリクエストを送るには、Invoke-WebRequestInvoke-RestMethod コマンドレットを使います。簡単な例を見てみましょう。

# シンプルなGETリクエスト
$response = Invoke-WebRequest -Uri "http://example.com"
$response.StatusCode
$response.Content

# JSON形式でPOSTリクエストを送信
$body = @{
    name = 'Taro'
    email = '[email protected]'
} | ConvertTo-Json
$response = Invoke-RestMethod -Method Post -Uri "http://example.com/api/users" -ContentType "application/json" -Body $body
$response

これらのコードはウェブサーバーからのレスポンスステータスコードや内容を表示します。

Deep Dive (深掘り)

HTTPリクエストの送信は、ウェブの初期からの基本的な操作です。Invoke-WebRequestInvoke-RestMethod は PowerShell 3.0 から導入されました。これらは、curlwget のような伝統的なUNIXコマンドラインツールと似た動作をしますが、PowerShell 環境に統合されており、オブジェクトとして結果を操作できます。

代替として、.NET の HttpClientWebRequest クラスを利用することも可能ですが、コードが増える傾向にあります。Invoke-RestMethod は主にREST APIとの交信に役立ち、JSON処理が自動化されている点が特徴です。

See Also (関連項目)