「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

PowerShellで外部APIを呼び出したいときに、よく使われるコマンドレットが Invoke-RestMethodInvoke-WebRequest です。
どちらもHTTP通信を実行できますが、用途や戻り値の扱いが大きく異なるため、適切に使い分ける必要があります。

この記事では、両者の違いと実際のコード例、APIの基本的な呼び出し方法をわかりやすく解説します。


✔ 結論(違いを一言で)

コマンドレット主な用途戻り値向いているケース
Invoke-RestMethodREST API向けJSONが自動的にオブジェクト化されるAPIレスポンスをそのまま処理したい
Invoke-WebRequestWebサイト取得向けHTML/レスポンス全体(ヘッダ含む)HTML解析、ファイルダウンロード、詳細検証

Invoke-RestMethod の使い方(REST API向け)

📌 JSONを返すAPIを叩く典型例

ポイント

  • JSONレスポンスは自動的に PowerShell のオブジェクトに変換される

  • $response.users.name のようにプロパティへ直接アクセス可能

認証付き(Bearer Token) 

POSTでデータ送信 


Invoke-WebRequest の使い方(HTML取得/ファイルDL向け)

📌 WebページのHTMLを取得して解析

ファイルのダウンロード

取得できる情報の例


使い分けの目安

状況選択
REST APIを扱うInvoke-RestMethod
レスポンスJSONをそのまま解析したいInvoke-RestMethod
Webサイト情報のスクレイピングInvoke-WebRequest
HTTPヘッダ/ステータス/生データを確認Invoke-WebRequest
ファイルDLをするInvoke-WebRequest

例:APIを叩いて結果を加工して表示 


API通信でよくあるトラブルと対処

発生状況原因対処
401 Unauthorized認証情報不足Token or API key を設定
403 Forbidden権限不足/IP制限API側設定を確認
415 Unsupported Media TypeContent-Type指定不足-ContentType "application/json"
JSONが扱えない文字列のまま返却ConvertFrom-Json を使用

まとめ

  • APIを叩くならまずは Invoke-RestMethod を使う

  • HTML解析やファイルDL、ヘッダ検証なら Invoke-WebRequest

  • JSONレスポンスを扱う場合は自動オブジェクト化が便利

PowerShellはサーバ監視、バッチ連携、クラウドAPI連携など多くの場面でAPI操作が必要になります。
違いを理解して効率良く活用していきましょう。

Ads by Google