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