0

我遇到了一个问题,服务器配置的更改意味着我下载图像的所有尝试MvxImageViewLoader都被重定向,直到它最终放弃。经过一番苦恼,我们终于发现,http请求中缺少user-agent标头才是罪魁祸首。所以,两个问题:

1) 尽管加载失败,但 MvxImageViewLoader 没有产生错误,并且设置 anErrorImagePath并不会导致显示错误图像。这似乎是错误的。我至少会期望调试器中出现错误消息。

2) 有没有一种简单的方法来添加用户代理标头?查看下载缓存插件的源代码后,我创建了自己的版本,MvxHttpFileDownloader它与原始版本完全相同,只是它MvxFileDownloadRequest再次创建了我自己的版本,与原始版本完全相同,除了我添加了用户代理标头在开始请求之前。然后我的版本在替换(我假设)原始版本中MvxHttpFileDownloader注册。AppDelegate这似乎有点沉重。有没有更简单的方法?

4

1 回答 1

1
  1. 我不清楚第一个问题是什么。

    如果有未使用的错误,请在http://github.com/slodge/mvvmcross/issuesErrorImagePath上记录(最好带有复制样本)

  2. 不 - 我目前不知道有任何更简单的方法可以做到这一点。

    DownloadCache 插件提供图像的下载缓存。作为一个完整的模块,它的 API 相当简单——例如,图像视图加载可以通过为IMvxImageHelper<TImage>.

    在内部,该模块还为开发人员提供了一些灵活性:

    • 通过接口 - 例如具有覆盖各个部分的能力 - 例如MvxHttpFileDownloader可以完全按照您的问题中的描述进行覆盖,
    • 通过一些缓存常量的一些配置选项。

    除此之外,目前没有任何其他 API 可用。这样做的原因很简单——就像所有 MvvmCross 一样,DownloadCache 是为满足正版应用程序的要求而构建的——这些应用程序不需要任何其他东西。实际上,DownloadCache 确实是MT.Dialog 图像加载器和 Windows 内置Image控件下载的替代品 - 两者都提供了比当前 DownloadCache 更少的自定义挂钩。

    如果人们需要一些有用的补充,那么这些当然可以被请求(或构建并作为拉取请求发送)——这些可能会包含在未来的库版本中。

    或者,开发人员还可以构建替代实现——尤其是使用特定于平台的网络堆栈或使用新的 HttpClient 网络库,这可能会克服 MonoTouch Http 堆栈的一些可能问题

希望有帮助

斯图尔特

于 2013-08-23T10:55:07.073 回答