curlコマンドでセミコロンが含まれるメッセージのPOST

Windows版もたぶん同じだと思いますのでcurl本家のマニュアルを参照します。

これによると-Fオプションの引数はmultipart/form-data形式のデータで、各フィールドは名前=値の形式であり、複数のフィールドがあるときは;で区切ることになっているようです。

multipart/form-data形式では特殊文字をパーセントエンコーディングでエスケープします (実体参照は使えません)。つまり、strの中身は次のようにする必要があるでしょう。

https://abcd.com/xxx%26check%3Dfalse

なお、質問に例示されている3行をすべてひとつのメッセージに入れたいという場合、上のオプションの説明によると次のように書けるようです。

curl -X POST -H "Authorization: Bearer !key!" -F "message=@ファイル名" https://notify-api.line.me/api/notify

ファイル名は3行が入ったファイルのパス名です (Windows版で動作するかどうかは確認していません)。この場合、内容をパーセントエンコーディングする必要はないようです。

コメントを投稿

0 コメント