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

Python Telegram Bot代理:Basic Auth含特殊字符的密码如何转义?

解决Python Telegram Bot代理Basic Auth特殊字符解析失败问题

当代理密码包含#、=、逗号这类特殊字符时,直接将其写入proxy_url会导致URL解析错误——因为这些字符属于URL的保留字符,会被误判为URL结构的一部分(比如#会被识别为锚点起始符)。

解决方案1:手动URL编码用户名/密码

使用Python内置的urllib.parse.quote函数,对用户名和密码分别进行URL编码,再拼接成合法的代理URL:

from urllib.parse import quote

# 原始认证信息
username = "TechLogin"
new_password = "-th#kr123=,1"

# 编码特殊字符
encoded_username = quote(username)
encoded_password = quote(new_password)

# 构建合法的代理URL
proxy_url = f"https://{encoded_username}:{encoded_password}@192.168.111.38:5050/"

REQUEST_KWARGS = {
    "proxy_url": proxy_url
}

updater = Updater(token=my_bot_token, request_kwargs=REQUEST_KWARGS)

编码后,特殊字符会被转换成URL安全的格式(比如#→%23,=→%3D,逗号→%2C),避免解析错误。

解决方案2:单独设置auth参数(推荐)

直接在request_kwargs中拆分代理地址和认证信息,将用户名密码放在auth字段里。requests库会自动处理特殊字符的编码,无需手动操作:

REQUEST_KWARGS = {
    "proxy_url": "https://192.168.111.38:5050/",
    "auth": ("TechLogin", "-th#kr123=,1")
}

updater = Updater(token=my_bot_token, request_kwargs=REQUEST_KWARGS)

这种方式更简洁可靠,减少手动编码可能出现的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:15:38