微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Heroku、Redis 和 Flask 时出现 UnicodeError 'idna' 编码

如何解决使用 Heroku、Redis 和 Flask 时出现 UnicodeError 'idna' 编码

我在带有 Heroku-Redis 服务器的 Heroku 上托管了一个 Flask REST API。

当尝试访问 Redis 服务器的代码被执行时,我收到以下错误

UnicodeError: encoding with 'idna' codec Failed (UnicodeError: label empty or too long)

似乎导致此错误代码是,

revoked_store.set(access_jti,'false',ACCESS_EXPIRES * 1.2)
revoked_store.set(refresh_jti,REFRESH_EXPIRES * 1.2)

连接设置在这里

revoked_store = redis.StrictRedis(host=os.environ.get('REdis_URL'),port=6379,db=0,decode_responses=True)

通过查看其他各种帖子,我认为此错误是由 Redis URL 太长(> 64 个字符)引起的。 See here.

我不知道如何解决这项工作,因此我们将不胜感激。

如果您需要更多信息,请告诉我。

谢谢。

解决方法

我遇到了同样的问题,然后I just read the documentation on Heroku Redis

作为参考,我做了以下事情,它解决了我的问题:

import os
from urllib.parse import urlparse
import redis

url = urlparse(os.environ.get("REDIS_URL"))
r = redis.Redis(host=url.hostname,port=url.port,username=url.username,password=url.password,ssl=True,ssl_cert_reqs=None)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。