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.0PSEdition CoreGitCommitId 7.4.0OS Microsoft Windows 10.0.22631Platform Win32NTPSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}PSRemotingProtocolVersion 2.3SerializationVersion 1.1.0.1WSManStackVersion 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 PSReadLineSet-PSReadlineOption -EditMode EmacsSet-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というのも最近出てきたので、そのうち試したい。