PowerShellにおけるcurlコマンドのHeaderオプションでエラー

概要

WindowsPowerShellcurlコマンドに--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コマンドのエイリアスであることが分かった。

docs.microsoft.com

curlコマンドの--headerに代わるオプションを調べたところ-Headersオプションがあり、入力方法は

Enter a hash table or dictionary.(公式のHeaders項目から引用)

であるので、ハッシュテーブルオブジェクトで入力
Invoke-WebRequrest --Header @{xxx=yyy}で実行したところ期待通りの動きをした。