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

如何用Python requests库单次GET请求同时获取headers和content

嘿,太懂你这种不想做冗余请求的心情了——两次GET不仅浪费带宽,还可能因为网络波动出现不一致的情况对吧?其实不管你用什么语言,主流的HTTP客户端工具都支持在单次请求后同时拿到响应头和内容,根本不用发起两次请求。给你举几个最常用的例子:

Python 实现(用 Requests 库)

Requests是Python里最常用的HTTP库,发起一次请求后,返回的响应对象会同时包含响应头和内容,直接提取就行:

import requests

# 只发起一次GET请求
response = requests.get("https://example.com")

# 提取响应头(是一个字典格式的对象)
response_headers = response.headers
# 提取文本格式的响应内容,二进制内容用 response.content
response_content = response.text

# 打印结果
print("响应头:", response_headers)
print("响应内容:", response_content)

这里整个流程只触发了一次HTTP请求,所有数据都来自同一个响应实例。

JavaScript 实现(用 Fetch API)

浏览器原生的Fetch API也能做到,注意解析内容时用的text()/json()方法是基于同一个响应流的,不会发起新请求:

fetch("https://example.com")
  .then(response => {
    // 先获取响应头对象
    const responseHeaders = response.headers;
    // 可以用get()方法获取特定头部,比如 responseHeaders.get('Content-Type')
    // 再解析响应内容,这里用text(),JSON内容用json()
    return response.text().then(content => ({
      headers: responseHeaders,
      content: content
    }));
  })
  .then(result => {
    console.log("响应头:", result.headers);
    console.log("响应内容:", result.content);
  })
  .catch(err => console.error("请求出错:", err));

通用思路(其他语言/工具)

不管你用的是Axios、Go的net/http包、Java的OkHttp还是其他HTTP客户端,核心逻辑都是一样的:

  • 发起单次GET请求
  • 从客户端返回的响应实例中,分别提取headers(响应元数据)和响应体(content)
  • 绝对不需要为了拿headers和content各发一次请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:28:07