curlのリクエストヘッダーを設定するにはどうすればよいですか?


197

curlリクエストのヘッダーに複数の値を渡すにはどうすればよいですか?


あなたが私たちに見せることができる、あなたが今使っている例がありますか
ライアンビッグ

4
複数の-Hフラグを追加します。例curl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

回答:


241

-Hパラメータを数回使用するだけです:

curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com

ヘッダーに含まれている場合はどうなります"か?
Freewind

2
@Freewindは、値を二重引用符ではなく単一引用符で囲むか、エスケープします。その場合はいつも同じことをします。
Darth Egregious 2015年

47

ヘッダーを変更するだけでは不十分な場合があります。一部のサイトはリファラーもチェックします。

curl -v \
     -H 'Host: restapi.some-site.com' \
     -H 'Connection: keep-alive' \
     -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
     -H 'Accept-Language: en-GB,en-US;q=0.8,en;q=0.6' \
     -e localhost \
     -A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36' \
     'http://restapi.some-site.com/getsomething?argument=value&argument2=value'

この例では、リファラー(curlの-eまたは--referer)は「localhost」です。


45

curlリクエストで複数のヘッダーを渡すには、追加する-H--headercurlコマンドに追加するだけです。

//Simplified
$ curl -v -H 'header1:val' -H 'header2:val' URL

//Explanatory
$ curl -v -H 'Connection: keep-alive' -H 'Content-Type: application/json'  https://www.example.com

もっと遠く行く

User-AgentCookieHostなどの標準的なHTTPヘッダーフィールドの場合、実際にはそれらを設定する別の方法があります。curlコマンドは、これらのヘッダーフィールドを設定するための指定されたオプションを提供します。

  • -A(または--user-agent):「User-Agent」フィールドを設定します。
  • -b(または--cookie):「Cookie」フィールドを設定します。
  • -e(または--referer):「Referer」フィールドを設定します。
  • -H(または--header):「Header」フィールドを設定します

たとえば、次の2つのコマンドは同等です。どちらも、HTTPヘッダーの「User-Agent」文字列を変更します。

    $ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" https://www.example.com
    $ curl -v -H "Content-Type: application/json" -A "UserAgentString" https://www.example.com
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.