it-swarm.com.de

Wie kann ich den Anforderungsheader für Curl einstellen?

Wie übergebe ich mehrere Werte im Header für eine curl -Anforderung?

160
ryan

Benutze einfach das -H Parameter mehrmals:

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

Manchmal reicht es nicht aus, den Header zu ändern. Einige Websites überprüfen auch den Referrer:

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'

In diesem Beispiel ist der Referer (-e oder --referer in curl) 'localhost'.

45
DavidG

Um mehrere Header in einer Curl-Anfrage zu übergeben, fügen Sie einfach zusätzliche -H oder --header zu Ihrem Lockenbefehl.

Beispiel

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

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

Weiter gehen

Für Standard-HTTP-Header-Felder wie User-Agent , Cookie , Host , es gibt tatsächlich eine andere Möglichkeit, sie einzustellen. Der Befehl curl bietet bestimmte Optionen zum Festlegen dieser Headerfelder:

  • -A (oder --user-agent): Feld "User-Agent" setzen.
  • -b (oder --cookie): Feld "Cookie" setzen.
  • -e (oder --referer): Feld "Referer" setzen.
  • -H (oder --header): Feld "Header" setzen

Die folgenden zwei Befehle sind beispielsweise äquivalent. Beide ändern die Zeichenfolge "User-Agent" im HTTP-Header.

    $ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" http://www.example.com
    $ curl -v -H "Content-Type: application/json" -A "UserAgentString" http://www.example.com
32
Tyler Rafferty