💪
URLエンコード要らずの"--data-urlencode"オプション
先日 +
が意図せずスペースに変換されてしまう状況にハマったことで、初めてURLエンコードというものを知りました。
この時はリクエストを送るために Postman を利用していたのですが、curl
コマンドにはこのURLエンコードを考えずにデータ入力をできるようにしてくれるオプションがあるらしい。
Postman vs cURL
例えば、パスワードをリセットするリクエストを送るとします。
Postman の場合
上記のように、
user+test@gmail.com
内の +
を %2B
に置き換える必要がある。
さもなくば、
user+test@gmail.com
=> user test@gmail.com
のように変換されてしまう。
cRUL の場合
--data
with curl -v -X PUT http://localhost:3000/reset_password --data "email=user%2Btest@gmail.com&password=test123"
--data
(-d
)の場合は、Postman と同様の入力値。
--data-urlencode
with curl -v -X PUT http://localhost:3000/reset_password --data-urlencode "email=user+test@gmail.com" -d "password=test123"
--data-urlencode
の場合は、user+test@gmail.com
をそのまま含ませることができる。他にも存在URLエンコードの可能性を気にすることなくデータ入力ができる。
シンボルを多く含むパラメータには cURL が無難
cURL のめちゃめちゃ種類の多いコマンドに苦手意識があって、Postman を使ってきましたが、こうしてみると cURL の方が応用がきいて使いやすいかも。
おまけ: 他のシンボルの対応表
Discussion