Windows11にcURLをインストールしてPowerShellから使う

Ajax通信をデバッグ(主に例外処理)するのにcURLを使いたくなりインストールしたときの覚書。

環境: Windows 11 Pro 23H2, PowerShell 7.4.0, cURL 8.5.0

PowerShellのバージョン確認。
PS> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0


1. Windows標準のcurl.exe

Windowsにはcurl.exeが付属している。

PS> gcm curl

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     curl.exe                                           8.4.0.0    C:\Windows\system32\curl.exe

Google検索してみるとcurlにエイリアスが設定されているという情報があるが、私の環境では設定されてなかった。
エイリアス一覧。
PS> Get-Alias

マルチプラットフォームなcurlを覚えたいので、公式のcurlをインストールする。


2. Scoop経由でインストール

パッケージ管理にscoopを使っているので、curlを検索、公式か確認してインストール。
PS> scoop search curl
PS> scoop info curl
PS> scoop install curl

Windows標準のcurlより優先するようにエイリアスを設定する。
PS> Set-Alias -Name curl -Value C:\Users\suganuma\scoop\shims\curl.exe

確認。
PS> Get-Alias curl
PS> gcm curl
PS> curl --version

これだけだと次PowerShellを起動したときに反映されていないので、ドキュメント\PowerShell\Microsoft.PowerShell_profile.ps1に追記する。

Import-Module PSReadLine
Set-PSReadlineOption -EditMode Emacs
Set-Alias -Name curl -Value C:\Users\suganuma\scoop\shims\curl.exe

ターミナルを起動してみて確認。
PS> Get-Alias curl

とやってみたけど、たまにしか使わないのでプロファイルに追記しなくてもいいかも。


3. curlのPOSTコマンド例

下記Gistが分かりやすかった。

ファイルに保存しておくとデバッグしやすい。
PS> cd D:\Downloads\debug
PS> curl -d "@ajax-test.txt" -X POST http://dev.hoge.jp/wp-admin/admin-ajax.php


4. PostmanやAPIDOGも便利

動作確認だったらPowerShellコマンドでいいけど、API開発するならPostmanが便利。
APIDOGというのも最近出てきたので、そのうち試したい。


【関連記事】