在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写HOST字段来测试一个负载均衡,或者通过重写"User-Agent"字符串来假冒特定浏览器以解决一些访问限制的问题。
为了解决所有这些问题,curl提供了一个简单的方法来完全控制传出HTTP请求的HTTP头。你需要的这个参数是-H 或者 --header。
为了定义多个HTTP头部字段,"-H"选项可以在curl命令中被多次指定。
例如:以下命令设置了3个HTTP头部字段。也就是说,重写了HOST字段,并且添加了两个字段("Accept-Language" 和 "Cookie")
代码如下:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)$ 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://m.tulaoshi.com/fuwuqi/)例如,以下两个命令是等效的。这两个命令同样都对HTTP头的"User-Agent"字符串进行了更改。
代码如下:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)$ curl -H "User-Agent: my browser" http://cnn.com
$ curl -A "my browser" http://cnn.com
wget是另外一个类似于curl,可以用来获取URL的命令行工具。并且wget也一样允许你使用一个自定义的HTTP头。