Volley的问题和贡献

由于在Volley上有这样的精彩演讲,我试图把它包含在我正在开发的一个项目中。 我发现自己纠正了我在发布的源代码中发现的一些错误。

有谁知道是否会有一些GitHub项目可以为项目做出贡献,或者有另外一种方法可以向开发人员传递错误和function请求?

关于我与Volley有关的问题:

1.似乎redirect不起作用,因为它应该:Volley返回一个错误代码302而不是redirect到响应头中给出的位置。

2.在运行4.2.2的模拟器上获取caching目录不起作用:

 cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR); final String cacheDir1 = "/Android/data/cache/"; cacheDir = new File(Environment.getExternalStorageDirectory().getPath() + cacheDir1); 

虽然这个解决方法是特定于平台的。 只是为了完成而添加它。

除此之外,我认为沃利真的是一段非常棒的代码,正是我一直在寻找的代码,直到我自己做到了;)

更新1

这里的另一个链接到贡献页面AOSP 。 我认为它更像一个独立的库。 我会检查一下,尽pipe我仍然欣赏关于Volley的更多信息和教程。 我build议的源代码只是一个快速和肮脏的修复,这在我的演示项目中做了诡计。

更新2

我发现Ognyan Bankov另一个有趣的博客文章是对另一个问题的回应,这可能会有所帮助。

Solutions Collecting From Web of "Volley的问题和贡献"

似乎很多已经在评论中得到了回答,但我会尽力掩盖其余的,或者说,我会尽力涵盖您的具体问题。

1)Volley不自己处理redirect。 它由底层的HttpStack处理。 例如,我目前使用OkHttp(来自Square)作为我的用于Volley的HTTP客户端。 请参阅https://plus.google.com/108284392618554783657/posts/eJJxhkTQ4yU https://gist.github.com/JakeWharton/5616899 OkHttp非常好,因为它具有优秀的默认处理SPDY,redirect和其他HTTP方便。 你也可以用它来实现你自己的平台默认值HttpUrlConnection(在连接上调用followRedirects(),然后把它交给Volley —例如:https://developer.android.com/reference/java/net/HttpURLConnection。 html#setFollowRedirects(boolean) )

2)我甚至不知道我会使用getCacheDir()作为Volleycaching。 根据文档( https://developer.android.com/reference/android/content/Context.html#getCacheDir() ),该caching目录不应超过1 MB。 而大多数客户端倾向于使用10 MB作为httpcaching的默认值(1 mb对于Httpcaching来说确实很小!!)。 另外,为什么你使用这样一个深度caching目录? 没有理由说“cacheDir1”应该是多个目录深的。 只要把它作为一个文件名。 getCacheDir()将返回自己的文件夹。 我build议在初始化Volley的时候这样做(通常推荐的地方是Application类):

 File volleyCacheFile = new File(getExternalCacheDir(), "volleyCache.tmp"); 

当然,这没有任何error handling(如果外部存储不可用?)。 此外,不要忘记,您需要适当的权限来写入外部存储。

希望有所帮助。