Python中如何为requests请求正确添加分页查询参数
问题原因
- GET请求无需携带
data参数,你当前配置的data=payload属于无效配置,部分校验严格的接口会直接拒绝这类不符合规范的请求 Content-Type: application/json是请求体格式声明头,GET请求没有请求体,这个头属于多余配置,可能导致接口解析异常- 手动手写JSON字符串容易出现转义错误,可靠性低
修正后代码
import json import requests url = self.get_url_for_endpoint(Constants.PATH_STATISTICS_CUSTOMERS) # 用json模块自动序列化分页参数,避免手动写JSON的格式问题 paging_params = {"page": 0, "size": 100} params = { 'paging': json.dumps(paging_params) } headers = { 'Authorization': 'Bearer ' + self.access_token, 'Cookie': 'JSESSIONID=AB52DV8260C*****************' } # 直接用get方法发送请求,自动处理参数URL编码 r = requests.get(url, headers=headers, params=params) # 可打印请求地址和Postman的请求地址做对比,确认参数拼接正确 print(r.url)
验证方式
如果打印出的请求url中paging参数格式为%7B%22page%22:0,%22size%22:100%7D,就和Postman的请求格式完全一致,分页参数可以正常生效。
内容的提问来源于stack exchange,提问作者midi
相关产品推荐
相关产品推荐

