Кэширование Http-клиента Android

В моем приложении для Android я пытаюсь кэшировать ответ HTTP-клиент. Я тестирую эту задачу, используя facebook graph API и имею следующий URL-адрес: https://graph.facebook.com/riz.ahmed.52

Впервые я получаю «first_name» и отображаю его. Затем я меняю Имя своего профиля в Facebook и снова вызываю ту же ссылку. Я ожидаю получить старое/кэшированное "first_name", но получаю обновленное. Консоль всегда показывает сообщение «Ответ пришел от вышестоящего сервера» , когда я вызываю URL-адрес.

Мой код для Http-клиента выглядит следующим образом:

    CacheConfig cacheConfig = new CacheConfig();  
    cacheConfig.setMaxCacheEntries(1000);
    cacheConfig.setMaxObjectSizeBytes(8192);

    //HttpClient httpclient = new CachingHttpClient(new DefaultHttpClient(), cacheConfig);
    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();

    // Updated code [START]
    httpclient.addResponseInterceptor(new HttpResponseInterceptor() {
        public void process(
            final HttpResponse response,
            final HttpContext context) throws HttpException, IOException {

                 response.removeHeader(response.getFirstHeader("Pragma"));
                 response.removeHeader(response.getFirstHeader("Expires"));

            }                
        });
    // Updated code [END]

    HttpGet httpget = new HttpGet(url);

            // Execute HTTP Get Request
    HttpResponse response = httpclient.execute(httpget, localContext);
    HttpEntity entity = response.getEntity();
    String res = EntityUtils.getContentCharSet(entity);

    CacheResponseStatus responseStatus = (CacheResponseStatus) localContext.getAttribute(
        CachingHttpClient.CACHE_RESPONSE_STATUS);

    switch (responseStatus) {
        case CACHE_HIT:
            System.out.println("A response was generated from the cache with no requests " +
                "sent upstream");
            break;
        case CACHE_MODULE_RESPONSE:
                System.out.println("The response was generated directly by the caching module");
                break;
        case CACHE_MISS:
                System.out.println("The response came from an upstream server");
                break;
        case VALIDATED:
                System.out.println("The response was generated from the cache after validating " +
                        "the entry with the origin server");
                break;
            }

Я использую Android 2.3.3. Пожалуйста, дайте мне знать, что мне здесь не хватает

6
задан rizzz86 29 May 2012 в 11:12
поделиться