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

如何使用GNU wget发送PUT请求并获取完整响应体?

如何使用GNU wget发送PUT请求并获取完整响应体?

嘿,我之前也碰到过一模一样的问题!其实用wget发送PUT请求并拿到完整响应体,核心是把几个参数搭配对,我来给你捋清楚:

首先直接给你能拿到完整响应(响应体+可选响应头)的可行命令:

wget --method=PUT --header="Content-Type: application/json" --body-file=tmpfile.txt -O - --verbose "https://api.example.com/api/v1/path"

我拆解下每个参数的作用,以及为什么你之前的命令没拿到响应体:

  • --method=PUT:这个你已经用对了,指定HTTP请求方法为PUT
  • --header="Content-Type: application/json":告诉服务器请求体是JSON格式,没问题
  • --body-file=tmpfile.txt:从指定文件读取PUT请求的内容,正确
  • -O -:这是核心! 大写的-O参数指定响应体的输出位置,这里的-代表标准输出(也就是你的终端),这样响应体就会直接打印出来。你之前用这个参数却没拿到内容,大概率是因为缺少调试参数,或者服务器返回错误状态码时wget默认不输出响应体
  • --verbose(简写-v):这个参数会把请求头、响应头、状态码这些细节都打印出来,方便调试;如果只想要响应体,可以去掉这个参数

另外,如果服务器返回4xx/5xx这类错误状态码,wget默认会跳过响应体的输出,这时候你需要加上--content-on-error参数,强制获取错误响应的内容:

wget --method=PUT --header="Content-Type: application/json" --body-file=tmpfile.txt -O - --content-on-error "https://api.example.com/api/v1/path"

最后再总结下关键点:

  • 必须用-O指定响应体的输出位置(-是输出到终端,也可以写文件名保存到本地)
  • 要同时查看响应头就加-v
  • 错误状态码下要拿响应体就加--content-on-error

虽然确实curl做这类HTTP请求更顺手,但既然只能用wget,这个组合应该能解决你的问题~

备注:内容来源于stack exchange,提问作者hed wig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:28:11