Подтвердить что ты не робот

Вопросы и вклад для Volley

Поскольку это была потрясающая презентация на Volley, я попытался включить ее в проект, над которым я работаю. Я обнаружил, что исправляю некоторые ошибки, обнаруженные в исходный код, который был опубликован.

Кто-нибудь знает, будет ли какой-то проект GitHub, где можно было бы внести свой вклад в проект, или есть другой способ сообщить разработчикам об ошибках и функциональных запросах?

Что касается проблем, которые я имел с Volley:

1. Кажется, что перенаправление не работает так, как должно: Volley возвращает код ошибки 302 вместо перенаправления на местоположение, указанное в заголовке ответа.

2. Получение каталога кэша не работает на моем эмуляторе, работающем на 4.2.2:

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

Это обходное решение является специфичным для платформы. Просто хотел добавить его для завершения.

Кроме того, я думаю, что Volley действительно потрясающий кусок кода и именно то, что я искал, пока не сделал это сам;)

Обновление 1

Здесь другая ссылка на страницу вклада AOSP. Я думал, что это больше автономная библиотека. Я проверю это, хотя я по-прежнему ценю больше информации и учебников по Volley. Исходный код, который я предложил, - это просто быстрое и грязное исправление, что и помогло в моем демонстрационном проекте.

Обновление 2

Я нашел еще один интересный блог-пост от Ognyan Bankov, упомянутый как ответ на другой вопрос, который может быть полезен.

4b9b3361

Ответ 1

Кажется, что в комментариях было много ответов, но я попытаюсь осветить остальные, или, вернее, я попытаюсь ответить на ваши конкретные вопросы.

1) Volley не обрабатывает перенаправление самостоятельно. Он обрабатывается базовым HttpStack. Например, в настоящее время я использую OkHttp (из Square) в качестве моего HTTP-клиента для Volley. См. https://plus.google.com/108284392618554783657/posts/eJJxhkTQ4yU. https://gist.github.com/JakeWharton/5616899 OkHttp замечательный, поскольку он имеет отличные настройки по умолчанию для обработки SPDY, перенаправления и других удобств HTTP. Вы также можете использовать это, чтобы реализовать свои собственные значения по умолчанию для платформы HttpUrlConnection (вызывая followRedirects() в соединении перед тем, как передать его Volley, например, https://developer.android.com/reference/java/net/HttpURLConnection.html#setFollowRedirects(boolean))

2) Я даже не уверен, что буду использовать getCacheDir() для кэша Volley. Согласно документам (https://developer.android.com/reference/android/content/Context.html#getCacheDir()), этот каталог кеша никогда не должен превышать 1 мб. Принимая во внимание, что большинство клиентов обычно используют 10 мб по умолчанию для кеша http (1 мб действительно мал для кэша Http!!). Кроме того, почему вы используете такой глубокий каталог кеша? Нет причин, по которым "cacheDir1" должен быть кратным множеством каталогов. Просто сделайте это имя файла. getCacheDir() всегда будет возвращать вашу собственную папку. Я бы рекомендовал это сделать при инициализации Volley (обычно рекомендуемым местом является класс Application):

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

Конечно, в этом отсутствует обработка ошибок (что, если внешнее хранилище недоступно?). Кроме того, не забывайте, что вам нужно соответствующее разрешение для записи внешнего хранилища.

Надеюсь, что это поможет.