python - Python requests.Session 缺少 cookie 问题
问题描述
我有一个与第三方 API 通信的 FastAPI 项目。应该使用完成登录过程后提供的一些 cookie 来授权对该 API 的请求。我执行此登录过程一次,然后为每个请求设置检索到的 cookie。我为此使用 requests 2.25.1 库。
问题是某些请求是在没有这些 cookie 的情况下发送的。这是我的项目中实现的方法之一的代码片段:
@staticmethod
def __get_driver_rides(
cookies: RequestsCookieJar,
driver_uid: str,
start_timestamp: int,
end_timestamp: int
) -> List[Ride]:
session = Session()
session.headers = HEADERS
session.cookies = cookies
session.params['page'] = 1 # type: ignore
session.params['pageSize'] = str(RIDES_PAGE_SIZE)
session.params['from'] = str(start_timestamp)
session.params['to'] = str(end_timestamp)
url = f'https://<THIRD_PARTY_API>/drivers/{driver_uid}/rides'
has_next = True
while has_next:
response = session.get(url)
try:
response.raise_for_status()
except HTTPError as e:
raise ServiceError(e) from e
...
在这个阶段,我会定期捕获 401 Unauthorized 状态代码。我碰巧在调试器中重现了这种情况并检查了一个Response
对象。它的request
字段 ( Response.request
) 不包含任何 cookie,但Session
我用来执行请求的对象包含。这是演示它的调试器屏幕截图:
解决方案
推荐阅读
- c# - Win2D 投影看起来参差不齐
- c# - 实体框架 dbcontext c# 的垃圾收集
- apache-kafka - 微服务数据复制模式
- python - 艰难地学习 Python 3 ex38
- c# - 如何云 两个泛型参数,一个用于规范,一个用于类型推断
- pandas - 数据透视表 pandas 的百分比计算
- asp.net-core-webapi - 当尝试获取传递给函数的表上存在的列时出现错误
- javascript - 如何在我的帐户文件中使用 firebase.auth 而无需再次初始化 firebase
- powershell - 按日期过滤的带有路径和总文件的目录列表
- html - 我应该以哪种方式设计网站的布局?