LoginSignup
6
7

More than 5 years have passed since last update.

curl で、URL encoding したいとき

Posted at

REST API で、URL のクエリ文字列に、JSONを入れたりするとき、URL encoding するの面倒ですよね。それをワンライナーでしたいという話。

例えば、こんな感じで、json が含まれているとします。

https://example.com/user?query={"name":"user name"}

query= 以降は、JSONなので、URL encoding が必要です。

URL encoding には、nkf を使ったり、perlを使ったりいろんな方法がありますが、ここでは、jq を使ってみます。jqが入っていない方は、brew install jq/sudo apt-get install jq等をして、インストールしてください。(jqのインストール方法はこちら)

$ echo '{"name":"user name"}' | jq -s -R -r @uri
%7b%22name%22%3a%22user%20name%22%7d%0a

ワンライナーで書くと、以下のようになります。

curl -v -H 'Content-Type: application/json' 'https://example.com/user?query='`echo '{"name":"user name"}' | jq -s -R -r @uri`
6
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7