Linux有问必答:如何在curl中设置自定义的HTTP头
创始人
2024-03-01 14:56:05
0

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

$ 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

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


via: http://ask.xmodulo.com/custom-http-header-curl.html

译者:Ping 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

ByBitApi.打开活动...
该问题是由于API请求中timestamp参数为空导致的。可以通过...
2025-01-12 20:01:10
不使用字面双引号将字符串传...
在将字符串传递给curl时,可以使用单引号或反斜杠来避免使用字面双...
2025-01-07 03:31:21
不使用浏览器或curl进行...
要不使用浏览器或curl进行HTTP请求,可以使用Python中的...
2024-12-29 01:02:00
不使用cURL自动化RES...
要实现不使用cURL自动化REST API的解决方法,可以使用Py...
2024-12-28 13:00:39
不清楚的curl选项 -o...
在使用curl命令时,-o选项用于将下载的内容保存到指定的文件中。...
2024-12-27 14:01:43
不能在端口9200上使用c...
如果无法使用curl命令在端口9200上获取响应,但可以通过pin...
2024-12-27 09:00:59

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...