Wie Android von der Rückkehr eine zwischengespeicherte Antwort auf meinen HTTP-Request zu verhindern?
-
01-10-2019 - |
Frage
Ich schreibe ein Client, der wiederholt HTTP-Anfragen für XML-Daten machen, die im Laufe der Zeit verändert. Es sieht aus wie der Android-Stack ist meine Seite Anfragen Caching und immer wieder die gleiche Seite zurück. Wie stelle ich sicher, wird es eine neue Seite jedes Mal?
- Code ---
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response;
response = client.execute(request);
InputStream in;
in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
Danke, Gerry
Lösung
fügen Sie einen HTTP-Header:
Cache-Control: no-cache
und sehen, ob das funktioniert.
Andere Tipps
Anfügen eines nicht verwendeter Parameter am Ende der URL:
HttpGet request = new HttpGet(url + "?unused=" + someRandomString());
wo someRandomString()
wahrscheinlich die aktuelle Zeit beinhaltet.
Es ist grob, aber es ist ziemlich garantiert zu arbeiten, unabhängig von all den äußeren Faktoren, die eine „richtige“ Lösung scheitern, wie falsch konfigurierten oder Buggy-Proxies machen.
Hinweis: die zufällige Zeichenfolge erhalten
HttpGet request = new HttpGet(url + "?unused=" + UUID.randomUUID().toString());