問題:我正嘗試使用curl指令擷取一個url,但除此之外我還想在傳出的http請求中設定一些自定義的頭部字段。我如何能夠在curl中使用自定義的http頭呢?
curl是一個強大的指令行工具,它可以通過網絡将資訊傳遞給伺服器或者從伺服器擷取資料。他支援很多的傳輸協定,尤其是http/https以及其他諸如ftp/ftps, rtsp, pop3/pop3s, scp, imap/imaps協定等。當你使用curl向一個url發送http請求的時候,它會使用一個預設隻包含必要的頭部字段(如:user-agent, host, and accept)的http頭。

為了解決所有這些問題,curl提供了一個簡單的方法來完全控制傳出http請求的http頭。你需要的這個參數是“-h” 或者 “--header”。
為了定義多個http頭部字段,"-h"選項可以在curl指令中被多次指定。
例如:以下指令設定了3個http頭部字段。也就是說,重寫了“host”字段,并且添加了兩個字段("accept-language" 和 "cookie")
$ curl -h 'host: 157.166.226.25' -h 'accept-language: es' -h 'cookie: id=1234' http://cnn.com
對于"user-agent", "cookie", "host"這類标準的http頭部字段,通常會有另外一種設定方法。curl指令提供了特定的選項來對這些頭部字段進行設定:
-a (or --user-agent): 設定 "user-agent" 字段.
-b (or --cookie): 設定 "cookie" 字段.
-e (or --referer): 設定 "referer" 字段.
例如,以下兩個指令是等效的。這兩個指令同樣都對http頭的"user-agent"字元串進行了更改。
$ curl -h "user-agent: my browser" http://cnn.com
$ curl -a "my browser" http://cnn.com
----------------------------------------------------------------------------------------------------------------------------