如何用Python模拟Postman向Telegram Bot检测API发送POST JSON请求?
Python实现模拟Postman发送Telegram Bot存活检测的POST请求
前置准备
- 安装Python生态最常用的HTTP请求库
requests,该库的请求处理逻辑和Postman的底层实现高度一致,可完全模拟Postman的手动发送操作:pip install requests
操作等价说明与格式注意事项
你提到的待传输JSON示例存在格式不规范的问题:标准HTTP传输的合法JSON必须对键、字符串值添加双引号,原始写法
{username:@testbot}无法被服务端JSON解析器识别,不管在Postman还是Python里发送都会触发解析报错,实际使用时要修正为标准格式:{"username": "@testbot"}当你在Postman里选择请求方法为POST、填写接口地址、在Body标签页选择「raw - JSON」填入上述合法JSON时,Postman会自动帮你设置
Content-Type: application/json请求头,将字典序列化为JSON字符串发送——这个过程用requests库可直接完成等价操作,不需要手动拼接请求结构。
完整可运行代码
import requests # 替换为你自己部署的Bot存活检测API的实际访问地址 API_URL = "https://你的服务域名/接口路径" # 构造和Postman中手动填写完全一致的JSON请求体 request_body = { "username": "@testbot" } # 发送POST请求 # json参数会自动完成两件事:1. 把Python字典序列化为合法JSON字符串;2. 自动设置Content-Type: application/json请求头 # 整个过程和你在Postman里选raw-JSON发请求的行为完全等价 response = requests.post( url=API_URL, json=request_body, # 如果接口需要鉴权,在这里加自定义请求头就行,和Postman里手动添加Header的逻辑一样 # headers={"Authorization": "Bearer 你的接口密钥"} ) # 拿到响应结果,和你在Postman界面查看返回内容的逻辑一致 print(f"请求状态码:{response.status_code}") print(f"接口返回的检测结果:{response.json()}")
常见使用说明
- 不需要手动调用
json.dumps转换请求体,也不需要手动设置Content-Type头,requests的json参数会自动处理这些细节,和Postman的默认JSON发送行为没有区别 - 如果需要模拟Postman里的超时设置,可以在
post方法里添加timeout=5参数,设置5秒请求超时 - 若返回400状态码,优先检查请求体的JSON格式是否合法,有没有漏加双引号、多写符号的问题
内容的提问来源于stack exchange,提问作者Reejit
相关产品推荐
相关产品推荐

