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

使用curl通过代理请求时,如何仅发送资源路径而非绝对URI?

解决curl通过代理发送仅含资源路径的HTTP请求

当使用curl通过代理执行HTTP请求时,默认会发送包含完整绝对URI的请求,示例如下:

$ curl -v --proxy localhost:8080 localhost:8888/ 
> GET http://localhost:8888/ HTTP/1.1 
> [...]

若需要让请求仅发送资源路径(即GET / HTTP/1.1格式),可以通过以下两种curl选项组合实现:

方法一:使用--request-target指定请求路径

通过--request-target直接定义请求行的目标部分,同时配合占位URL和手动设置Host头:

curl -v --proxy localhost:8080 --request-target "/" -H "Host: localhost:8888" http://dummy/

这里的http://dummy/是占位用的无效URL,curl仅需要一个URL参数即可执行,实际请求目标由--request-target指定,Host头用于告知代理目标服务的主机和端口。

方法二:使用--connect-to指定代理连接目标

通过--connect-to命令代理连接到目标主机,同时使用空主机的URL:

curl -v --proxy localhost:8080 --connect-to ::localhost:8888 http:///

--connect-to ::localhost:8888表示让代理连接到localhost:8888,而http:///作为URL会让curl生成仅含路径的请求行,并且自动添加正确的Host头(localhost:8888)。

以上两种方法都会让curl发送符合期望的GET / HTTP/1.1请求行,适配代理的解析特性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:34:59