Bash の Curl コマンドの Urlencode データ
 
curl は、あるマシンから別のマシンにデータを転送する Linux コマンドライン ユーティリティです。 HTTP、DICT、FILE、FTP、FTPS、IMAP、IMAPS、POP3 など、複数のプロトコルで動作します。
この記事では、bash で curl コマンドのデータを urlencode する方法を説明します。 curl コマンドの構文から始めましょう。
Bash の curl コマンド
curl コマンドの基本的な構文は次のとおりです。
curl [URL] [option]
例:
curl http://example.com
このコマンドは、Linux ターミナルで http://example.com のコンテンツを表示します。
curl コマンド オプション
curl コマンドでは複数のオプションを使用できます。 通常、オプションは 1つのダッシュ (-) または 2つのダッシュ (--) で始まります。 たとえば、1つのオプションを指定した curl コマンドは、次のように記述できます。
curl -L [URL]
複数のオプションを持つ curl コマンドは、次のように記述できます。
curl -ELb [URL]
また
curl -E -L -b [URL]
curl -d または --data オプション
curl コマンドの -d または --data オプションは、POST リクエストとしてサーバーにデータを送信するために使用されます。 例えば:
curl -d "p1=v1&p2=v2" [URL]
また
curl --data "p1=v1&p2=v2" [URL]
このコマンドは、指定された URL にデータを送信します。 たとえば、パラメータ p1 の値は v1 であり、パラメータ p2 の値は v2 であり、サーバーに送信されます。 これらのパラメータは、純粋なバイナリ形式で送信されます。
curl は、サーバーにデータを送信するための別の形式をサポートしています。 例えば:
- --data-asciiは、- -dまたは- --dataオプションと同じように機能します。
- --data-binaryオプションは、- POSTデータをコマンドで指定された実際の形式で処理せずに送信するために使用されます。
- --data-urlencodeオプションは、URL エンコードを実行して- POSTデータをサーバーに送信します。
curl コマンドからの URL エンコード データ
    
–data-urlencode を指定した curl は、URL エンコードを実行してサーバーにデータを送信するために使用されます。
例えば:
curl --data-urlencode "p1=v1" [URL]
上記のコマンドは URL をカールし、パラメータ p1 値 v1 を URL エンコード形式で渡します。 このコマンドは、値 v1 を URL エンコードし、p1 が既に URL エンコードされた形式であると想定します。
この curl オプションは curl 7.18.0 以降で使用できます。 たとえば、curl コマンドのバージョンを確認するには、curl -V を使用できます。
--data-urlencode オプションを指定した curl コマンドは、複数の形式で使用できます。 例えば:
- 
curl --data-urlencode =content [URL]このコマンドはコンテンツを URL エンコードし、 POSTで送信します。=はデータに含まれません。
- 
curl --data-urlencode name@file [URL]このコマンドは、指定されたファイルのデータを URL エンコードし、 POSTで送信します。 このコマンドは、名前がすでに URL エンコードされた形式であると想定しています。
- 
curl --data-urlencode @file [URL]このコマンドは、指定されたファイルのデータを URL エンコードし、 POSTで送信します。