LoginSignup
1
0

More than 3 years have passed since last update.

curlの使い方色々

Last updated at Posted at 2019-05-04

curlコマンドの使い方を色々とまとめていきます。

全角パラメータをGETメソッドで送る

GETメソッドでリクエストをする際に、URLの中のリクエストパラメータに全角文字を入れると怒られてしまって動かないことがあります。

$ curl "localhost:8080/sastruts/balance/findname?name=田中太郎"

<!doctype html><html lang="ja"><head><title>HTTPステータス 400 – Bad Request</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTPステータス 400 – Bad Request</h1><hr class="line" /><p><b>タイプ</b> 例外報告</p><p><b>メッセージ</b> リクエストの宛先に不正な文字が含まれています。利用可能な文字は RFC 7230 および RFC 3986 に定義されています。</p><p><b>説明</b> サーバは、クライアントエラー(例えば、不正なリクエスト構文、無効なリクエストメッセージフレーミング、または不正なリクエストルーティング)であると考えられるために、リクエストを処理できない、または処理しません。</p><p><b>例外</b></p><pre>java.lang.IllegalArgumentException: リクエストの宛先に不正な文字が含まれています。利用可能な文字は RFC 7230 および RFC 3986 に定義されています。

「--data-urlencode」を利用することでURLエンコードをしてくれます。

$ curl -G "localhost:8080/sastruts/balance/findname" --data-urlencode "name=田中太郎"

id:1name:田中太郎created_ad:2019-05-03 19:25:33.0updated_ad:null

リクエストボディにjson入れる

curl -v -X POST "localhost:8080/api/example" -d "{\"firstName\":\"太郎\",\"lastName\":\"田中\"}"

リクエストボディにjsonファイルを入れる

curl -v -X POST "localhost:8080/api/example" -d @test.json -H "Content-Type: application/json"
test.json
{
  "firstName": "太郎",
  "lastName": "田中"
}

HTTPヘッダーを出力する

-iオプションを利用することでHTTPヘッダーが出力されます。

$ curl -i localhost:3000
HTTP/1.1 200 OK
Set-Cookie: last_access=1583929785944;
Content-Type: text/plain
Date: Wed, 11 Mar 2020 12:29:45 GMT
Connection: keep-alive
Transfer-Encoding: chunked

Hello World

クッキーをセットしてリクエストする

クッキーをセットする場合は、-HでヘッダーにCookieを指定するだけです。

$ curl -i -H 'Cookie: last_access=1583929785944' localhost:3000
1
0
0

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
1
0