2016-07-08 9 views
2

私のアプリには奇妙な問題があります。 JSONをエコーし​​、AndroidアプリからPHPファイルを取得しているPHPファイルがサーバーにあります。変更後も同じJSONが表示されるPHPファイル

もし私がPHPファイルを変更すると、それは同じJSONを私に与えません。理由と方法は分かりません。

ブラウザからファイルを取得すると、正しいJSONが表示されます。

ファイルの名前を変更すると、正しい出力が表示されます。

私はこの動作がうんざりです。 誰か助けてください。この

httpGet.addHeader("Cache-Control", "no-cache"); 
+0

キャッシュがこの部分に影響を与える可能性があります。 – scottevans93

+0

JSONは動的か静的ですか? – scottevans93

+0

これを見てくださいhttp://stackoverflow.com/questions/13947772/json-being-cached-by-android-application – scottevans93

答えて

0

を追加

+0

私はタイムスタンプとしてSystem.nanoTime()を追加しました。出来た。ありがとう。 Tigger –

+0

HttpPostを使用すると、このキャッシュの問題は起こらないはずです。 –

+0

@ShantanuBanerjee正直言って、これはキャッシュコードがどのように書かれているのか分かりません。私が知っていることの1つは、クエリ文字列のランダムな文字列がURLをユニークにするため、キャッシュできない(キャッシュしてはならない)ことです。 – Tigger

0

てみてください。これは、キャッシングの問題のようにたくさん聞こえます。あなたはキャッシングをバストしようとすることができますさまざまなオプションがあります。

URLの終わりにランダムなクエリ文字列値を配置する方法がほとんどあります。 timestampのようなものは常に新しいものですが、ランダムな文字列も機能するので、良い選択です。例えば

、もしあなたURLました:

https://my.site/getJSON.php 

新しいURLは次のようになります。

https://my.site/getJSON.php?t=<timestamp or random string> 

その他のオプションはCache-Controlヘッダ(およびそれ以上)が、クエリ文字列トリック作品とあるの追加が含ま実装が簡単です。

+0

となります。私はPHPでそれほど経験はありません。 –

+0

基本的に、HTTPクライアントはサーバーからJSONファイルの新しいコピーを取得します。それが保存したローカルのものを利用するのではなく。 – scottevans93

+0

また、このスニペットはあなたのAndroid Appに入る必要があります。 PHPファイルではありません – scottevans93

関連する問題