如何存储从请求收到的cookies?

2024-04-25 23:11:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,我可以这样做request

headers = {'Content-Type': 'application/json;charset=ISO-8859-1'}
d = {'db_name': 'a_database', 'username': 'me', 'password': 'apw'}

db_url = "http://123.45.67.89:1234/something/rest/connections"
r = requests.post(db_url, data=json.dumps(d), headers=headers)

这将创建一个cookie:

^{pr2}$

然后,我可以使用r.cookies来生成额外的requests,然后指定cookies=r.cookies。在

在我的flask应用程序中,我想在几个函数中使用cookie,所以我想我应该将它存储在session

from flask import Flask, render_template, request, jsonify, session

session['cookies'] = r.cookies

这样我以后就可以用了

r2 = requests.post(someurl, data=json.dumps(anotherd), headers=headers, cookies=session['cookies'])

然而,这导致

Object of type 'RequestsCookieJar' is not JSON serializable

如何存储r.cookies,使其在应用程序中的所有函数中都可用,但可以因用户而异?在


Tags: 函数json应用程序urlflaskdbdatacookie
1条回答
网友
1楼 · 发布于 2024-04-25 23:11:52

您不能存储RequestsCookieJar,不,但是如果您只需要cookies的名称和值,您可以简单地将jar转换为字典:

session['cookies'] = r.cookies.get_dict()

^{} method还支持按域和路径筛选。在

对于将来的请求,requests.<METHOD>(...)调用的cookies参数直接接受这样的字典。在

相关问题 更多 >