Curl için istek üstbilgisini nasıl ayarlayabilirim?


197

Bir curlistek için başlıkta birden çok değeri nasıl iletirim?


Şu anda bize gösterebileceğiniz bir örnek var mı?
Ryan Bigg

4
çoklu -H bayrağı ekleyin. Örneğincurl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

Yanıtlar:


242

-HParametreyi birkaç kez kullanın :

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

Başlık içeriyorsa ne olur "?
Freewind

2
@Freewind, değeri bir çift yerine tek bir tırnakla sarın veya kaçın. Bu durumda hep aynı şey.
Darth Egregious

47

Bazen üstbilgiyi değiştirmek yeterli olmaz, bazı siteler de yönlendireni kontrol eder:

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'

Bu örnekte, başvuru yapan kişi (curl içindeki -e veya --referer) 'localhost'tur.


45

Kıvrılma isteğinde birden çok başlık iletmek için ek -Hveya --headerkıvrılma komutunuza eklemeniz yeterlidir .

Misal

//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

Daha İleri

User-Agent , Cookie , Host gibi standart HTTP üstbilgisi alanları için bunları ayarlamanın başka bir yolu daha vardır. Curl komutu, bu başlık alanlarını ayarlamak için belirlenmiş seçenekler sunar:

  • -A (veya --user-agent): "Kullanıcı-Aracı" alanını ayarlayın.
  • -b (veya --cookie): "Çerez" alanını ayarla.
  • -e (veya --referer): "Yönlendiren" alanını ayarla.
  • -H (veya --header): "Başlık" alanını ayarla

Örneğin, aşağıdaki iki komut eşdeğerdir. Her ikisi de HTTP üstbilgisindeki "User-Agent" dizesini değiştirir.

    $ 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.