我试图在kivy应用程序中显示图像,但图像加载器返回错误403禁止。
我注意到我必须发送User-Agent标头来绕过此错误,但我找不到任何方法将标头传递给图像加载器
有什么方法可以解决这个问题吗?
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
答案 0 :(得分:1)
目前,在使用AsyncImage时无法修改User-Agent。负责的代码是here:
fd = urllib_request.urlopen(filename)
如您所见,没有好方法可以在其中传递不同的UserAgent。
而是自己处理文件的下载。
我想您也可以尝试使用修改后的urllib.request.Request
方法传递split
对象,以便变量filename
实际上不包含字符串而只包含Request
,但仍然可以在StringProperty
(AsyncImage
)的检查中幸存下来。但这可能是非常不稳定的,而不是一个“适当的”解决方案。