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" 解决方案。
我试图在 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" 解决方案。