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

如何在Python中获取URL请求头?支持类似Charles Proxy格式吗?

问题1:如何在Python中获取指定URL的请求头

最常用的方式是借助requests库,它能轻松处理HTTP请求。你可以发送一个HEAD请求(只返回响应头,比GET更高效)来获取目标URL的响应头,示例代码如下:

import requests

url = "https://example.com"
try:
    response = requests.head(url, allow_redirects=True)  # allow_redirects=True 处理重定向场景
    # 获取响应头
    response_headers = response.headers
    # 打印所有响应头
    for key, value in response_headers.items():
        print(f"{key}: {value}")
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")

如果需要获取自己发送的请求头(也就是请求时携带的头信息),可以访问response.request.headers:

print("发送的请求头:")
for key, value in response.request.headers.items():
    print(f"{key}: {value}")
问题2:能否在Python中以类似Charles Proxy的格式获取URL请求头

当然可以。Charles Proxy的格式通常会清晰区分请求信息、请求头、响应头,用分隔线分隔,键值对对齐显示。我们可以基于requests库获取头信息后,手动格式化输出,模仿Charles的样式:

import requests

url = "https://example.com"
try:
    response = requests.get(url, allow_redirects=True)
    
    # 模仿Charles格式输出
    print("="*80)
    print(f"请求: {response.request.method} {url}")
    print("-"*80)
    print("请求头:")
    for key, value in response.request.headers.items():
        print(f"  {key}: {value}")
    print("-"*80)
    print(f"响应: {response.status_code} {response.reason}")
    print("-"*80)
    print("响应头:")
    for key, value in response.headers.items():
        print(f"  {key}: {value}")
    print("="*80)
    
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")

这段代码会输出类似Charles的结构化内容,包含请求方法、URL、请求头、响应状态、响应头,用横线和等号分隔,视觉上和Charles的请求详情面板风格一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:45:36