You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Uni Stats API发送GET请求返回401错误的求助

解决Uni Stats API请求返回401未授权的问题

你遇到的这个问题其实很常见:Postman能正常请求,但用requests库直接把token塞在URL里就返回401。这是因为Postman会自动识别URL中的API_TOKEN@格式,将其转换为Basic Auth的请求头,但requests库默认不会做这个自动转换,所以得我们手动处理认证信息。

下面给你两种可行的解决方案:

方法一:使用requests的auth参数(推荐)

这个方法最简洁,requests会帮你自动处理Basic Auth的编码逻辑:

import requests

# 注意这里要去掉URL里的API_TOKEN@部分
url = 'https://data.unistats.ac.uk/api/v4/KIS/Institution/10007856.json'
# 把你的实际API_TOKEN替换掉这里的字符串,密码部分留空(符合Uni Stats API的认证规则)
response = requests.get(url, auth=('你的实际API_TOKEN', ''))

# 现在可以正常获取JSON数据了
print(response.json())

方法二:手动构造Authorization请求头

如果你想更清晰地控制请求头细节,可以手动生成Basic Auth的认证字符串:

import requests
import base64

url = 'https://data.unistats.ac.uk/api/v4/KIS/Institution/10007856.json'
# 构造认证字符串:API_TOKEN + 冒号(密码为空)
auth_string = f"你的实际API_TOKEN:"
# 进行base64编码
base64_auth = base64.b64encode(auth_string.encode('utf-8')).decode('utf-8')
# 构造请求头
headers = {
    'Authorization': f'Basic {base64_auth}'
}

response = requests.get(url, headers=headers)
print(response.json())

额外排查提示

如果还是有问题,可以先打印response.text看看API返回的具体错误信息,方便进一步排查:

print(response.text)

内容的提问来源于stack exchange,提问作者Ali Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:37:08