2010-04-22 9 views
27

Escribo un cliente que realiza solicitudes HTTP repetidas para datos xml que cambian con el tiempo. Parece que la pila de Android está almacenando en caché mis solicitudes de página y devolviendo la misma página repetidamente. ¿Cómo me aseguro de que tenga una página nueva cada vez?¿Cómo evitar que Android devuelva una respuesta en caché a mi solicitud HTTP?

- código ---

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)); 

Gracias, Gerry

Respuesta

25

añadir una cabecera HTTP:

Cache-Control: no-cache 

y ver si funciona.

+0

El uso de no-cache y no-store no parece afectar los resultados. Agregar un parámetro falso que cambia no parece funcionar tampoco. Estoy usando: HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet (url); HttpResponse response; try { request.setHeader ("Cache-Control", "no-cache"); request.setHeader ("Cache-Control", "no-store"); response = client.execute (solicitud); ¿Alguien más tuvo éxito con esto? De lo contrario, la plataforma es inútil para mí. – Gerry

+0

¿Agregó ambos encabezados? ¿O solo uno a la vez? – Kylar

+0

Ambos encabezados al mismo tiempo. – Gerry

26

Anexar un parámetro sin utilizar en el final de la URL:

HttpGet request = new HttpGet(url + "?unused=" + someRandomString()); 

donde someRandomString() probablemente implica la hora actual .

Es crudo, pero está prácticamente garantizado que funciona independientemente de todos los factores externos que pueden hacer que una solución "adecuada" falle, como proxies mal configurados o defectuosos.

+1

Que hizo el truco para mí, pero ¿hay alguna cabecera en el lado del cliente para agregar el fin de eludir el problema? – kaneda

2

Consejo: para obtener la cadena aleatoria

HttpGet request = new HttpGet(url + "?unused=" + UUID.randomUUID().toString()); 
Cuestiones relacionadas