【问题标题】:UnicodeError 'idna' encoding when working with Heroku, Redis and Flask使用 Heroku、Redis 和 Flask 时出现 UnicodeError 'idna' encoding
【发布时间】:2021-05-17 18:24:51
【问题描述】:

我在 Heroku 上使用 Heroku-Redis 服务器托管了一个 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, 'false', 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.

我不确定如何解决此问题,因此我们将不胜感激。

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

谢谢。

【问题讨论】:

    标签: python sockets flask heroku redis


    【解决方案1】:

    我遇到了同样的问题,然后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)
    

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 1970-01-01
      • 2021-02-16
      • 2017-04-05
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多