Вопросы и вклад в залп
Так как это была отличная презентация о волейболе, я попытался включить ее в проект, над которым я работаю. Я исправил некоторые ошибки в исходном коде, который был опубликован.
Кто-нибудь знает, будет ли какой-нибудь проект GitHub, в который можно было бы внести свой вклад в проект, или есть другой способ сообщить об ошибках и запросах функций разработчику?
Что касается проблем, которые у меня были с залпом:
1. Похоже, что перенаправление не работает должным образом: залп возвращает код ошибки 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. Я думал, что это больше автономная библиотека. Я проверю это, хотя я все еще ценю больше информации и обучающих программ по Волейболу. Исходный код, который я предложил, - это просто быстрое и грязное исправление, которое помогло мне в моем демонстрационном проекте.
Обновление 2
Я нашел еще один интересный пост в блоге Огняна Банкова, упомянутый как ответ на другой вопрос, который может быть полезным.
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)
2) Я даже не уверен, что использовал бы getCacheDir() для кеша Volley. Согласно документации ( https://developer.android.com/reference/android/content/Context.html), этот каталог кэша никогда не должен превышать 1 МБ. Принимая во внимание, что большинство клиентов, как правило, используют 10 МБ по умолчанию для кэша http (1 МБ действительно мало для кэша Http!!). Кроме того, почему вы используете такой глубокий каталог кеша? Нет причин, по которым "cacheDir1" должен иметь несколько каталогов. Просто сделайте это именем файла. getCacheDir() в любом случае вернет вашу собственную папку. Я бы порекомендовал сделать это при инициализации Volley (обычно рекомендуемое место - класс Application):
File volleyCacheFile = new File(getExternalCacheDir(), "volleyCache.tmp");
Конечно, в этом отсутствует какая-либо обработка ошибок (что, если внешнее хранилище недоступно?). Кроме того, не забывайте, что вам нужно соответствующее разрешение для записи внешнего хранилища.
Надеюсь, это поможет.