概要
WindowsのPowerShellでcurl
コマンドに--header
オプションを付けて実行したところ
PowerShell curl コマンドエラー Invoke-WebRequest : パラメーター 'Headers' をバインドできません。 "XXX" の値を "System.String" 型から "System.Collections.IDictionary" 型に変換できません。
というエラーが出た。
解決策
エイリアスの調査
PowerShellにおけるcurl
コマンドのエイリアスを確認したところ
> Get-Alias curl CommandType Name Version Source ----------- ---- ------- ------ Alias curl -> Invoke-WebRequest
Invoke-WebRequest
コマンドのエイリアスであることが分かった。
curl
コマンドの--header
に代わるオプションを調べたところ-Headers
オプションがあり、入力方法は
Enter a hash table or dictionary.(公式のHeaders項目から引用)
であるので、ハッシュテーブルオブジェクトで入力
Invoke-WebRequrest --Header @{xxx=yyy}
で実行したところ期待通りの動きをした。