请求模块是否会截断标头?

问题描述 投票:0回答:1

我正在尝试使用相当长(1017 个字符)的承载令牌向我的 API 发出 POST 请求以进行授权。

无论我尝试什么,当我启动请求时,我都会收到一条错误消息,指出位置 512 中的

\u2026
(水平省略号)无法使用“latin-1”编码进行编码。由于我找不到我指定的标头的任何问题(或省略号),我唯一的解释是请求模块在内部默默地截断了我的令牌。难道是这样吗?可以禁用吗?还有其他解决方法吗?

python python-requests
1个回答
0
投票

Python 本身中的 requests 模块不应截断标头。

您所描述的错误可能与您的承载令牌中的非 ASCII 字符的编码或处理有关。

您可以尝试将您的token打印到控制台,并检查出现错误的位置(并确保显示的token的有效性)。

此外,您可以尝试将打印的令牌复制并粘贴到例如Notepad++ 并启用特殊字符来检查是否有一些“不可读”的字符。

或者,尝试使用“utf-8”对您的不记名令牌进行编码。

import requests

token = 'your_token'

headers = {
    'Authorization': 'Bearer ' + token.encode('utf-8')
}

response = requests.post("your_api_endpoint", headers=headers)
© www.soinside.com 2019 - 2024. All rights reserved.