📘
curlとInvoke-webRequestコマンドの使い方とオプション比較
1. はじめに
curlコマンドとInvoke-webRequestコマンドは、ターミナル画面でhttpリクエストを送ることが出来るコマンド
※現在、5章の使用例は随時、更新中です
2. curlコマンド
LinuxやMacで使用するコマンド
Windowsでも追加でインストールして使用することは可能
3. Invoke-webRequestコマンド
Windowsのpowershellに標準搭載されているコマンド
4. curlコマンドとInvoke-webRequestのオプションの対比
説明 | curl | Invoke-WebRequrest |
---|---|---|
メソッド | -X/--request <メソッド名> | -Method <メソッド名> |
GET時のパタメータの渡し方1 | URL?<key=value> | URL?<key=value> |
GET時のパタメータの渡し方2 | -G/--get -d <パラメータ名=値> | -Body @{key=value} |
POST時のパタメータの渡し方 | -d <パラメータ名=値> | -Method "GET" -Body <パラメータ> |
ヘッダ | -H/--header <XXX> | -Headers <XXX> |
OAUTH2.0ヘッダ | --oauth2-bearer <token> | -Authentication OAuth -Token <token> |
OAUTH2.0ヘッダその2 | -H 'Authorization: Bearer <token>' | -Headers 'Authorization: Bearer <token>' |
ファイルダウンロード時の保存先パス | -o/--output <保存先のファイルパス> | -OutFile <保存先のファイルパス> |
プロキシ経由 | -x <proxy-URL:portNo> | -Proxy <proxy-URL:portNo> |
5. 使用例
- URLはhogehoge.co.jpで統一しています
5.1. GETメソッド(パタメータなし)
curlコマンド
curl https://www.hogehoge.co.jp
or
curl -X GET https://www.hogehoge.co.jp
or
curl --request GET https://www.hogehoge.co.jp
Invoke-webRequestコマンド
Invoke-webRequest https://www.hogehoge.co.jp
or
Invoke-WebRequest -Method GET https://www.hogehoge.co.jp
5.2. GETメソッド(パタメータ[クエリストリング]有り)
- URLの後ろに?をつけて、
key=value
で設定する - 複数のパタメータを設定する場合、
&
で繋げる - curlでは
-G -d/--data key=value -d/--data key=value
でも設定が可能 - Invoke-webRequest
-Body @{key="value"; key="value"}
でも設定が可能(value値は""で括ったほうがよい)
例)keyとvalueにfoo=bar、buz=quxの2つの引数(クエリストリング)を渡す場合
curlコマンド
curl https://www.hogehoge.co.jp?foo=bar&buz=qux
or
curl -G -d foo=bar -d buz=qux https://www.hogehoge.co.jp
Invoke-webRequestコマンド
Invoke-webRequest https://www.hogehoge.co.jp?foo=bar&buz=qux
or
Invoke-webRequest -Method "GET" -Body @{foo=bar;buz=qux} https://www.hogehoge.co.jp
5.3. POSTメソッド
curlコマンド
curl -X "POST" https://www.hogehoge.co.jp
Invoke-webRequestコマンド
Invoke-webRequest -Method "POST" -d foo=bar -d buz=qux https://www.hogehoge.co.jp
5.3. POSTメソッド(ボディ部有り)
curlコマンド
curl -X "POST" -d foo=bar https://www.hogehoge.co.jp
Invoke-webRequestコマンド
Invoke-webRequest -Method "POST" -Body @{foo="bar"} https://www.hogehoge.co.jp
or
$body= @{
foo="bar"
}
Invoke-webRequest -Method "POST" -Body $body https://www.hogehoge.co.jp
5.3 プロキシサーバを経由する場合
プロキシサーバのURLがhttp://proxy.co.jp:、ポート番号が8080の場合
curlコマンド
$ curl https://www.hogehoge.co.jp/ -x http://proxy.co.jp:8080
Invoke-webRequestコマンド
$ Invoke-webRequest https://www.hogehoge.co.jp/ -Proxy http://proxy.co.jp:8080
6. 参考サイト
Discussion