Linux有问必答:如何在curl中设置自定义的HTTP头

Linux有问必答:如何在curl中设置自定义的HTTP头

问题:我正尝试使用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头。

在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写“HOST”字段来测试一个负载均衡,或者通过重写"User-Agent"字符串来假冒特定浏览器以解决一些访问限制的问题。

为了解决所有这些问题,curl提供了一个简单的方法来完全控制传出HTTP请求的HTTP头。你需要的这个参数是“-H” 或者 “--header”。

为了定义多个HTTP头部字段,"-H"选项可以在curl命令中被多次指定。

例如:以下命令设置了3个HTTP头部字段。也就是说,重写了“HOST”字段,并且添加了两个字段("Accept-Language" 和 "Cookie")


  1. $ 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"字符串进行了更改。


  1. $ curl -H "User-Agent: my browser" http://cnn.com
  2. $ curl -A "my browser" http://cnn.com

wget是另外一个类似于curl,可以用来获取URL的命令行工具。并且wget也一样允许你使用一个自定义的HTTP头。点击这里查看wget命令的详细信息。

----------------------------------------------------------------------------------------------------------------------------

原文发布时间:2015-02-28
本文来自云栖合作伙伴“linux中国”
时间: 2024-07-28 17:12:06

Linux有问必答:如何在curl中设置自定义的HTTP头的相关文章

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

如何在qq拼音输入法中设置自定义短语?

  如何在qq拼音输入法中设置自定义短语?          一.我们右键点击输入法,然后依次选择"拼音工具"."造词". qq拼音输入法 二.打开造词界面,我们点击"自定义短语"这一项. 1.在"缩写"下面的方框输入"w"(因为'我在写百度经验'这个短语开头字母是'w',大家也可以定义为别的字母). 2.中间的那排数字是该短语在候选词列表中的位置, 3.在"自定义短语"下面的方框里输入

Linux有问必答——如何在Linux命令行中剪裁图像

Linux有问必答--如何在Linux命令行中剪裁图像 问题:我想要去除图像文件中的白色空白,有没有什么便捷的方法能在Linux命令行中对图像文件进行剪裁? 当涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之一.它包含了一整套命令行工具,用以显示.转换,或复制超过200中类型的光栅或矢量图像文件,所有这一切都在命令行下完成.ImageMagick可以用于多样化的图像编辑工作,如转换文件格式,添加特殊效果,添加文本,以及改变图像(调整大小.旋转.翻转

Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库 问题: 我想要安装一个在Nux Dextop仓库的RPM包.我该如何在CentOS或者RHEL上设置Nux Dextop仓库? Nux Dextop是一个面对CentOS.RHEL.ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop桌面对CentOS和RHEL 6/7可用. 要在CentOS或者RHEL上启用Nu

Linux有问必答 - 如何在linux上安装WPS

Linux有问必答 - 如何在linux上安装WPS 问题: 我听说一个好东西Kingsoft Office(译注:就是WPS),所以我想在我的Linux上试试.我怎样才能安装Kingsoft Office呢? Kingsoft Office 是一套办公套件,支持多个平台,包括Windows, Linux, iOS 和 Android.它包含三个组件:Writer(WPS文字)用来文字处理,Presentation(WPS演示)支持幻灯片,Spereadsheets(WPS表格)是电子表格.其使

如何在word中设置不连续的页码?

有些word封面不需要页码,目录需要一个从第一页开始的页码,正文需要一个从第一页开始的页码.如果在页眉页脚插入页码,会得到连续的页码编号,这样不符合我们的要求. 那么如何在word中设置不连续的页码呢?举个例子:某word文档,前两页是目录,从第三页起是正文. 大体的思路是:想办法把目录和正文分成两个独立的部分,然后给目录设置一个页码,给正文设置一个页码就可以了. 操作方法是: 1.首先,将光标移至第二页的最后,点击插入分隔符分节符类型中选择下一页,然后点击视图打开页眉与页脚工具条; 2.将光标

华硕笔记本预装win8改win7如何在bios中设置

  华硕笔记本预装win8改win7如何在bios中设置         开机按F2键,进入bios 切换到Security标签,找到Secure BOOT Control,将Enabled改为Disabled,这一步的作用是关闭微软的Secure BOOT,这个功能开启会导致不能识别U盘启动系统的安装 切换到BOOT标签,将Launch CSM改为Enabled(如果是灰色不可以选择,先按F10保存退出再次进入就可以选择了),这个选项的作用就是,将UEFI的BIOS改为传统BIOS 最后按 F

联想G410(预装windows8.1) 如何在bios中设置从U盘启动安装Ubuntu14.10?

问题描述 联想G410(预装windows8.1) 如何在bios中设置从U盘启动安装Ubuntu14.10? 我已经将U盘制作成了安装盘,如图 然后重启电脑,按fn+f2进入了bios设置界面, 如何设置从U盘启动呢? 解决方案 看不到图片啊,你重新发一下图吧 解决方案二: 看不到图片啊,你重新发一下图吧 解决方案三: 首先把boot mode由uefi修改为传统或者bios. 然后下面设置启动顺序,如果没有,开机按住f8或者f12,然后会有启动设备列表的菜单,选择U盘. 解决方案四: bio

ios-如何在cell中设置cell不能点击(不是在TableView中在设置)

问题描述 如何在cell中设置cell不能点击(不是在TableView中在设置) 如何在cell中设置cell不能点击(不是在TableView中在设置) 解决方案 将cell的交互关掉 解决方案二: cell.userInteractionEnabled = No; 解决方案三: cell.selectionStyle = UITableViewCellSelectionStyleNone; 是没有选中效果,还是可以点击的 解决方案四: 将cell的交互关掉 将cell的交互关掉 将cell