Postman带sessionId的post请求访问失败


使用 Python 访问一个数据接口,调用是正常的,但是使用 Postman 进行访问时出错了,搞了两天,后面发现很简单,故记录一下。

1、Python 调用过程

Python 调用接口代码如下:

import requests
import json
if __name__ == "__main__":
    api_url = "https://xxx.xxx.xxx.com/XXX/XXX"
    session_id = "xxx"
    pl = {"bgtime": "2022-10-01 00:00:00","endtime": "2022-10-31 23:59:59"}
    headers = {'Cookie': 'Cookie_1=value; Cookie_7=value; sessionId={}'.format(session_id),'Content-Type': 'application/json',}
    req = requests.post(api_url, headers=headers, data=json.dumps(pl))
data = req.json()
print(data)

调用返回结果:

{
	'code': 200,
	'list': [
		{'xxx': 'xxx', ……}, 
		{'xxx': 'xxx', ……}, 
		{'xxx': 'xxx', ……},
	]
}

2、Postman 错误示例

错误1:Post 请求误做 Get 请求。
Post 接口误做 Get 接口
错误2:参数设置问题,这里把 Get 请求换成了 Post 请求,并且把参数由 Params 放到了 Body 下的 x-www-form-urlencoded。
参数设置问题

3、Postman 正确示例

以下是正确示例:
Postman正确示例
值得注意的是,sessionId 设置方式:
sessionId设置方式
之前一直以为是sessionId 的设置有问题,改了好几遍也没用,结果是参数设置有问题,所以还是要好好分析一下那段 Python 代码,Post 请求代码是req = requests.post(api_url, headers=headers, data=json.dumps(pl)),由此可知,api_url 是对的,headers 也是对的,data 是参数,参数是 json 形式的,打印出来见代码第 4 行,所以把这串 json 放入 Postman 的 Body 下的 raw 或 json 就行。
参数的设置方式

pl = {"bgtime": "2022-11-01 00:00:00","endtime": "2022-11-30 23:59:59"}
data=json.dumps(pl)
print(data)
# {"bgtime": "2022-11-01 00:00:00", "endtime": "2022-11-30 23:59:59"}

4、总结

仅以此文,记述尴尬又庸碌的编程生活,望给读此文的朋友提供一点点益处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值