32

Volley に関するこの素晴らしいプレゼンテーションがあったので、私が取り組んでいるプロジェクトにそれを含めようとしました。公開されたソース コードで見つかったいくつかのバグを修正していることに気付きました。

プロジェクトに貢献できるGitHubプロジェクトがあるかどうか、または開発者にバグや機能リクエストを伝える別の方法があるかどうか、誰か知っていますか?

ボレーで抱えていた問題について:

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 による別の興味深いブログ投稿を見つけました。

4

1 に答える 1

6

コメントで多くの回答が得られたようですが、残りをカバーするか、特定の質問をカバーしようとします.

1) Volley はそれ自体でリダイレクトを処理しません。基になる HttpStack によって処理されます。たとえば、現在、Volley の HTTP クライアントとして OkHttp (Square 製) を使用しています。https://plus.google.com/108284392618554783657/posts/eJJxhkTQ4yU を参照してくださいhttps://gist.github.com/JakeWharton/5616899 OkHttp は、SPDY、リダイレクト、およびその他の HTTP の便利さを処理するための優れたデフォルトを備えているため、優れています。これを使用して、プラットフォーム HttpUrlConnection の独自のデフォルトを実装することもできます (たとえば、Volley に渡す前に、接続で followRedirects() を呼び出します --- https://developer.android.com/reference/java/net/HttpURLConnection. html#setFollowRedirects(boolean) )

2) Volley キャッシュに getCacheDir() を使用するかどうかさえわかりません。ドキュメント ( https://developer.android.com/reference/android/content/Context.html#getCacheDir() ) によると、そのキャッシュ ディレクトリは 1 MB を超えてはいけません。一方、ほとんどのクライアントは、http キャッシュのデフォルトとして 10 mb を使用する傾向があります (1 mb は、Http キャッシュでは非常に小さいです!!)。また、なぜそのような深いキャッシュ ディレクトリを使用しているのですか? 「cacheDir1」が複数のディレクトリの深さである必要がある理由はありません。ファイル名にするだけです。とにかく getCacheDir() は独自のフォルダーを返します。Volley を初期化するときにこれを行うことをお勧めします (通常、推奨される場所は Application クラスです)。

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

もちろん、これにはエラー処理がありません (外部ストレージが利用できない場合はどうなるでしょうか?)。また、外部ストレージに書き込むには適切な権限が必要であることを忘れないでください。

それが役立つことを願っています。

于 2013-08-12T01:44:35.790 に答える