2014-03-26 3 views
2

Я использую библиотеку Volley для доступа к данным моего сервера. У Volley есть встроенная функция кеширования. Я пытался использовать это как показано ниже. Это поставило «CACHED RESPONSE». но я не знаю, как получить доступ к кэшированным данным.Данные ответа на блокировку доступа к мобильному телефону Android

void initHttpCall(){ 

    RequestQueue queue = Volley.newRequestQueue(mcontext); 

    UOBRequest<RateData> myReq = new UOBRequest<RateData>(Method.GET, 
              Constants.GET_RATES, 
              RateData.class, 
              mlistner, 
              createMyReqErrorListener()){ 


          @Override 
          public Map<String, String> getHeaders(){ 

          HashMap<String, String> headers = new HashMap<String, String>(); 
          headers.put("Authorization", getToken()); 
          headers.put("Accept","application/json"); 

          return headers; 

          } 



    }; 

    myReq.setShouldCache(true); 
    if(queue.getCache().get(Constants.GET_RATES)!=null){ 

     System.out.println("CACHED RESPONSE"); 

     }else{ 

      queue.add(myReq); 
     } 


} 

}

Это мой ответ, и у слушателя хочет получить RateData объекта здесь.

new Response.Listener<RateData>() { 



    @Override 
    public void onResponse(RateData rateData) { 

     setupCurrencyPager(rateData); 
     setLastUpdatedTime(); 

    } 
}); 

ответ

0

Вы поняли, как работает система кэширования залпа в. Красота это то, что как пользователь Volley, вы не знаете, откуда приходит ответ.

Когда вы добавляете новый запрос в RequestQueue, Volley проверяет, имеет ли этот запрос кешированный ответ. этот ответ e еще не истек, он немедленно возвращается. В противном случае он выходит за пределы сети, получает ответ, кэширует его и возвращает его вам.

Вам не нужен этот последний оператор if, просто добавьте его в очередь, а Volley позаботится обо всем остальном.

-1

попробуйте следующий код.it поможет вам убедиться.

, пожалуйста, создайте запрос, который вы хотите передать серверу. JSONObject request = новый JSONObject(); request.put («пользователь», «пользователь2»);

JsonObjectRequest jsObjRequest = новый JsonObjectRequest (Request.Method.POST, URL, запрос, новый Response.Listener() {

@Override 
    public void onResponse(JSONObject response) { 
     // TODO Auto-generated method stub 
     Log.v("response:-"+response); 
    } 
}, new Response.ErrorListener() { 

    @Override 
    public void onErrorResponse(VolleyError error) { 
    } 
}); 
queue.add(jsObjRequest); 

}

+0

Это не имеет никакого отношения к вопросу –

Смежные вопросы