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

如何在不发送请求的情况下查看POST请求内容并生成curl命令

不发送请求查看requests请求内容的方法

你要找的这种“不发请求就查看请求细节”的需求,requests本身没有直接叫foobar的方法,但有两种实用方案:

1. 构造PreparedRequest查看原始请求细节

requests发送请求前,会先把请求封装成PreparedRequest对象,你可以手动构造这个对象,直接查看所有请求参数,不用真的发请求:

import requests

api_key = 'asdfklhsdfkjahsdlgkjahlkdjahfsa'
url = 'https://www.website.com'

headers = {'api-key': api_key,
           'Content-Type': 'application/json'}
request_data = {'foo': 'bar', 'egg': 'spam'}

# 构造Request对象
req = requests.Request('POST', url, headers=headers, data=request_data)
# 准备成可发送的请求对象(但不发送)
prepped = req.prepare()

# 查看请求细节
print('请求URL:', prepped.url)
print('请求头:', prepped.headers)
print('请求体:', prepped.body)

这个prepped对象包含了最终要发送的所有内容,你可以直接打印或输出各个属性来检查。

2. 生成可直接执行的curl命令

如果想直接生成curl命令字符串,有两种方式:

  • 手动拼接:根据请求参数自己拼curl命令,但要注意转义特殊字符,比如引号。
  • 用现成工具:可以用requests-toolbelt库中的工具(需要先pip install requests-toolbelt安装),它能直接把PreparedRequest对象转成curl命令:
import requests
from requests_toolbelt.utils import dump

api_key = 'asdfklhsdfkjahsdlgkjahlkdjahfsa'
url = 'https://www.website.com'

headers = {'api-key': api_key,
           'Content-Type': 'application/json'}
request_data = {'foo': 'bar', 'egg': 'spam'}

req = requests.Request('POST', url, headers=headers, data=request_data)
prepped = req.prepare()

# 生成curl命令
curl_cmd = dump.dump_all(prepped, request_prefix=False).decode('utf-8')
print(curl_cmd)

执行后会输出完整的curl命令,你可以直接复制到终端执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:50:32