如何通过Python Requests将API Token传入Cookie认证pkgs.org API
要解决这个问题,你需要把API Token放到Cookie里发送请求,而不是用代码里的auth参数。下面两种方法都可以实现:
方法1:直接在请求头中添加Cookie
直接在请求头字典里新增Cookie字段,格式按照官方要求设置(一般为token=你的API密钥)。修改后的代码如下:
import requests token = 'super-secret' headers = { 'Accept': 'application/json', 'Cookie': f'token={token}' # 将Token放入Cookie中 } r = requests.get('https://api.pkgs.org/v1/distributions', headers=headers) print(r.status_code) print(r.json()) # 接口返回JSON时可直接解析查看
方法2:使用requests.Session管理Cookie
如果后续需要发起多个API请求,用requests.Session更方便——它会自动保存并携带Cookie,无需每次重复设置。代码示例:
import requests token = 'super-secret' # 创建Session对象 s = requests.Session() # 给Session添加指定Cookie s.cookies.set('token', token) headers = {'Accept': 'application/json'} r = s.get('https://api.pkgs.org/v1/distributions', headers=headers) print(r.status_code) print(r.json())
原代码问题说明
你之前用auth=(token)是HTTP基本认证的写法,会把Token编码后放到Authorization请求头里,但官方明确要求将Token作为Cookie传入,所以这个方式不生效,必须替换成上述Cookie传递方式。
内容的提问来源于stack exchange,提问作者thoughtcrime
相关产品推荐
相关产品推荐

