403 Forbidden while trying to display image from url - Kivy

403 Forbidden while trying to display image from url - Kivy

我试图在 kivy 应用程序中显示图像,但图像加载器 returns 错误 403 被禁止。

我注意到我必须发送 User-Agent header 来绕过这个错误,但是我找不到任何方法将 headers 传递给图像加载器

有什么办法可以解决这个问题吗?

kv 文件

AsyncImage:
    source: 'url_to_image'
    keep_ratio: True

错误:

[ERROR  ] [Loader      ] Failed to load image <url_to_image>
urllib.error.HTTPError: HTTP Error 403: Forbidden

目前您无法在使用 AsyncImage 时修改 User-Agent。负责的代码是here:

fd = urllib_request.urlopen(filename)

如您所见,没有好的方法可以在其中传递不同的 UserAgent。

而是自己处理文件的下载。

我想您也可以尝试使用修改后的 split 方法传递 urllib.request.Request 对象,这样变量 filename 实际上不包含字符串,而是 Request,但仍能通过 StringProperty(在 AsyncImage 中)的检查。但这可能会非常不稳定,而不是 "proper" 解决方案。