如何使用Python requests库携带headers发送JSON Payload
Python requests发送对应Payload的实现方案
你提供的是抓包工具里折叠展示的JSON结构,直接按照结构补全为合法Python字典,配合requests的json参数传参即可发送,步骤如下:
- 先整理合法的Payload结构
注意抓包预览里省略了键的双引号、折叠了部分字段,整理时要保证键名和实际抓包值完全一致,布尔值、空值对应Python的True/False/None语法。 - 补全必要的请求参数
需要你从抓包记录里拿到实际的请求URL、请求方法(这类埋点接口基本都是POST)、必填请求头(比如鉴权头、Cookie、UA等)。
完整参考代码
import requests # 替换为抓包拿到的实际接口地址 api_url = "替换为你的目标接口URL" # 构造和抓包结构一致的请求体 request_payload = { "token": "替换为你抓包到的实际TOKEN值", "events": [ { "type": "settings_pane_viewed", "properties": { "accessibility_features": 524416, "accessibility_support_enabled": False, "client_performance_memory": 0, "client_send_timestamp": 1655898469437, "client_track_timestamp": 1655898468696, "client_uuid": "替换为你抓包到的实际UUID值", "destination_pane": "My Account", "origin_pane": None, "rendered_locale": "en-US", "settings_type": "user", "source": None } } ] } # 补全抓包拿到的所有必要请求头 request_headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" # 按需补充Cookie、Referer、Origin、Authorization等头 } # 发送请求,json参数会自动完成JSON序列化 resp = requests.post(url=api_url, json=request_payload, headers=request_headers) # 调试查看返回结果 print("响应状态码:", resp.status_code) print("响应内容:", resp.text)
常见注意事项
- 不要使用
data=request_payload传参,该参数默认会以application/x-www-form-urlencoded格式编码参数,不符合JSON接口的要求;使用json=参数时requests会自动将字典序列化为标准JSON字符串,无需手动调用json.dumps() - 如果接口返回参数错误,优先对照原始抓包的Request Payload检查是否漏了折叠隐藏的字段,你贴的预览里有
…标记,说明有字段被折叠省略了,需要展开补全 - 若接口有反爬校验,需要把抓包拿到的Cookie、Referer、Origin、签名头都完整放到headers里,否则会被拦截
内容的提问来源于stack exchange,提问作者kerbesed
相关产品推荐
相关产品推荐

