問題タブ [httpresponsecache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
10482 参照

android - AndroidのHttpResponseCacheの例が必要です

こんにちは私はAndroid4で導入されたHttpResponseCacheを使用しようとしています。ドキュメントはキャッシュのインストール方法について明確に説明していますが、ネットからダウンロードした画像をキャッシュする方法については完全に途方に暮れています。以前はDiskLruCacheを使用してそれらをキャッシュしていました。 。HttpResponseCacheが使用されている動作コードの例を誰かに教えてもらえますか。

編集:-誰かが私がここで間違っていることを教えてもらえますか:-

次に、TheMainListFragのローダーで、次のようにします。-

インターネットに接続しているときは正常に動作し、ディレクトリhttp(上記の名前のキャッシュディレクトリ)では、ファイルも表示されます。しかし、私がインターネットに接続していないとき、データはロードを拒否します。

ネットからイメージをロードすると、.tmpという名前のキャッシュファイルが表示されます。これは、DiskLruCacheに従ってダーティと呼ばれていると思います。

他に提供してほしい情報があれば教えてください

0 投票する
1 に答える
812 参照

android - HttpResponseCache はファイルをキャッシュしません

このファイルをキャッシュしようとしています: http://media.admob.com/sdk-core-v40.js with HttpResponseCache. 基本的に、getFileFromUrl 関数を 2 回呼び出しているため、1 回目はインターネットからリソースを取得し、2 回目はキャッシュからリソースを取得します。

ただし、どちらの方法でも、「リソースがキャッシュされていません!java.io.FileNotFoundException: http://media.admob.com/sdk-core-v40.js」というエラーが発生します。これは、ファイルがキャッシュされておらず、アクセスできないということですか? コードの何が問題になっていますか?

0 投票する
2 に答える
496 参照

java - Android 2.3.6 バージョンの NoClassDefFoundError(HttpResponseCahe)

4.0 以降では正常に動作する 1 つの Android アプリを開発しましたが、バージョン 2.3.4 になると、Responcecache に関する例外が発生します。私はgithubに従いました:- https://github.com/candrews/HttpResponseCache .2.3.4および2.3.6で実行されている例外を下回っています。

この問題を解決する方法を教えてください。

0 投票する
0 に答える
533 参照

android - HTTP 応答のキャッシング (HttpResponseCache)

HttpResponseCache を使用して、HttpURLConnection で送信された各 HTTP 要求をキャッシュしようとしています。
ただし、リクエストが 2 回目にリソースに送信された場合でも、ヒット カウントは常にゼロになります。キャッシュにヒットしないのはなぜですか?

ヒット数:

使用法:

これは、キャッシュを有効にする方法です。

0 投票する
1 に答える
920 参照

java - HttpResponseCache および DiskLruCache での java.lang.NoClassDefFoundError

このキャッシュ ライブラリを新しいプロジェクト Android でテストしようとしています。
プロジェクトを実行すると、次の Logcat が表示されます。

Craig Andrews の HttpResponseCacheプロジェクトとJake Wharton の DiskLruCacheプロジェクトから両方の jar をlibs フォルダーにコピーしました。
プロジェクト ファイル

これは私の MainActivity.java です:

他のスレッドで注文の問題を読んだので、Java ビルド パスの [注文とエクスポート] タブで、これを最初に配置しました。 ビルド パス
注文とエクスポート

私はプロジェクトをきれいにし、再構築しましたが、何も機能しません。問題は解決しません...何か
考えはありますか...??

ありがとう。

0 投票する
1 に答える
815 参照

java - Android HttpResponseキャッシュの更新を解析していますか?

私は実際に android.so で HttpResponse キャッシュを有効にしようとしています。このメソッドを呼び出して、onCreate メソッドのメイン アクティビティでキャッシュを有効にしました。

しかし、サーバーデータが変更された場合にキャッシュを更新したいのですが、公式のdeveloper.androidでこの部分のコードを見つけました

私の質問は、更新をスキップする方法ですか? つまり、キャッシュからデータを取得する方法です。

これが私のgetJsonメソッドです

ご覧のとおり、サーバーデータが更新された場合、古いデータを取得するリスクがあります。更新を確認するために http 応答ヘッダーをテストするように最適化したいと考えています。

0 投票する
0 に答える
2097 参照

android - Android の HttpUrlConnection での応答のキャッシュ

私のアプリでは、HttpResponseCache を実装して応答をキャッシュし、サーバーにアクセスする代わりに使用できるようにしました。特定の api について、サーバーはヘッダー Cache-Control を no-cache;must-revalidate として返します。ヘッダー ETag もあります。問題は、この API の応答がキャッシュされていないことです。その結果、API を要求するたびに、サーバーは 200 を返します。no-cache,must-revalidate は、応答がキャッシュされない/キャッシュされないことを意味しますか?

http リクエストのリクエスト ヘッダーとレスポンス ヘッダーを以下に示します。

リクエストヘッダー:

GET HTTP/1.1 User-Agent Accept application/json Cache-Control max-age=0 Cookie
Host
Connection Keep-Alive Accept-Encoding gzip

応答ヘッダー:

HTTP/1.1 200 OK サーバー Apache-Coyote/1.1 Cache-Control no-cache, must-revalidate ETag "c683a0301c68c566fcc706f5cd82f1f8" Content-Type application/json;charset=UTF-8 Transfer-Encoding chunked Content-Encoding gzip Vary Accept-Encoding Date 2014 年 2 月 24 日 (月) 04:44:03 GMT

HTTP_GET リクエストを送信中:

0 投票する
1 に答える
1709 参照

android - Androidでのキャッシング実装を改善するためのHttpResponseCacheまたはVolleyを使用したHttpUrlConnection

データを取得するためにサーバーへの多くの http 要求がある Android 用のアプリを開発しています。私の応答には、多くの画像と JSON 形式のテキストが含まれています。

Google Play、Google plus、およびその他のアプリケーションの使用などの適切なキャッシュを使用して、アプリケーションの動作を高速化したいと考えています。

私はすでに Android Volleyライブラリについて知っており、テスト用にいくつかのサンプルを試して開発しました。しかし、最近、インターネットで同じことを調査しているときに、リクエスト応答HttpResponseCache用のキャッシュをインストールするクラスについて知りました。Http

今、私はどちらに行くべきかについて少し混乱しています。私はすでにボレーを試しましたが、使用しようとはしませんでしたHttpResponseCache.

私の質問は:

彼らは内部で同じことをしていますか?

そうでない場合は、どちらを使用するのが良いでしょう。

あなたの専門家のアドバイスや経験は私の多くの時間を節約します.

0 投票する
0 に答える
808 参照

android - サーバーが HTTP_NOT_MODIFIED を返したときに httpUrlConnection がキャッシュされた応答を返さない

応答と、応答ヘッダーの Last-Modified および Date を返す API 要求があります。HTTP.GET リクエストを作成するために HttpUrlConnection を使用しています。また、HttpResponseCache を使用して応答をキャッシュしています。

サーバーが応答コード 200 を返すと、応答がキャッシュされます。私は今、2つの問題に直面しています。

First : API が 2 回目に要求されると、HttpUrlConnection は、'Last-Modified' ヘッダーの値を使用する代わりに、'Date' ヘッダーの値を 'If-Modified-Since' ヘッダーとして設定します。

キャッシュされた応答から If-Modified-Since ヘッダーを手動で設定することで、この問題を解決しました。そのため、サーバーは 2 回目の API 要求で 304 を返します。

これが私の2番目の問題です。

2 番目:通常、サーバーが 304 を返し、応答がキャッシュされている場合、HttpUrlConnection はキャッシュされた応答を返し、応答コードは 200 になります。ただし、Last-Modified ヘッダーのみを含む応答の場合、HttpUrlConnection は応答コードを 304 自体として返し、キャッシュされた応答を返しません。

同様の問題に遭遇した人はいますか?

API リクエストの Java 実装を以下に示します。

0 投票する
2 に答える
158 参照

java - なぜ HttpResponseCache にリフレクションを使用するのですか?

ドキュメントHttpResponseCacheは次のセクションがあります。

以前のリリースでの作業

このクラスは Android 4.0 (Ice Cream Sandwich) で追加されました。リフレクションを使用して、以前のリリースに影響を与えずに応答キャッシュを有効にします。

この呼び出しは、SO の質問 (例:ここ) のリフレクションと Web の例で確認できます。また、この正確なスニペットを含むコードを引き継いで、キャッシュを設定しました (コメントを含むため、おそらく単なるコピーパスタです)。ただし、ここでリフレクションを使用する必要がある理由がよくわかりません。

通常、自分の defined より上の特定の API レベルで追加されたメソッドを使用するminSdkVersion場合は、次のパターンを使用します。

では、なぜこれが のデフォルト パターンではないのでしょうかHttpResponseCache。リフレクションを使用する利点は何ですか? それは確かに私のコードの可読性には追加されません。HttpResponseCacheこの方法でリフレクションを使用すると、実際に ICS の下で機能しますか?

編集:ここには古い Android デバイスがなく、エミュレーターがまったく起動しないため、現時点では単純にテストすることはできません。たぶん、反射なしでひどくクラッシュするだけです。