You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中使用httpie提取HEAD请求的Location头部信息?

解决方法

你遇到的问题确实是因为HTTPie默认把响应头输出到了stderr,而你的管道只捕获了stdout的内容,所以才会得到空结果。不用合并标准流,直接用HTTPie自带的参数就能解决:

使用--print h(缩写-p h)参数,让HTTPie仅将响应头输出到标准输出(stdout),这样后续的管道命令就能正常捕获并处理内容了:

http -p h HEAD https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb | grep Location | sed "s/Location: //"

补充说明

HTTPie的默认输出逻辑是:

  • 响应头 → 输出到stderr
  • 响应体 → 输出到stdout

这样设计是为了让你在获取响应体的同时,能单独查看头部信息而不干扰主体内容。但当你需要处理头部时,--print参数可以指定要输出的部分(h代表响应头,b代表响应体,H代表请求头等),并且会将指定内容发送到stdout,完美适配你的需求。

如果你想更简洁地提取Location值,甚至可以用awk代替grep+sed:

http -p h HEAD https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb | awk '/Location:/{print $2}'

内容的提问来源于stack exchange,提问作者k0pernikus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:26:54