2015-01-08 2 views
0

Я хочу использовать куки в Robospice, у меня есть пряность обслуживание:Печенье в Robospice

public class JsonSpiceService extends SpringAndroidSpiceService { 

    public RestTemplate createRestTemplate() { 
     RestTemplate restTemplate = new RestTemplate(); 
     MappingJacksonHttpMessageConverter jsonConverter = new MappingJacksonHttpMessageConverter(); 
     FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter(); 
     StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(); 
     final List<HttpMessageConverter<?>> listHttpMessageConverters = restTemplate.getMessageConverters(); 
     HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); 
     restTemplate.setRequestFactory(httpRequestFactory); 
     listHttpMessageConverters.add(jsonConverter); 
     listHttpMessageConverters.add(formHttpMessageConverter); 
     listHttpMessageConverters.add(stringHttpMessageConverter); 
     restTemplate.setMessageConverters(listHttpMessageConverters); 
     return restTemplate; 
    } 

    public CacheManager createCacheManager(Application application) throws CacheCreationException { 
     CacheManager cacheManager = new CacheManager(); 

     List< Class<?>> classCollection = new ArrayList< Class<?>>(); 
     classCollection.add(User.class); 
     JacksonObjectPersisterFactory jacksonObjectPersisterFactory = new JacksonObjectPersisterFactory(application); 
     cacheManager.addPersister(jacksonObjectPersisterFactory); 

     return cacheManager; 
    } 
} 

и мой запрос класс:

public class Request extends SpringAndroidSpiceRequest<HttpModel> { 
private Context context; 
private HttpMethod httpMethod; 
private MultiValueMap<String, String> body; 
private String link; 
private String what; 
private Object object; 

public Request(Context context, HttpMethod httpMethod, MultiValueMap<String, String> body, String link, String what, Object object) { 
    super(HttpModel.class); 
    this.context = context; 
    this.httpMethod = httpMethod; 
    this.body = body; 
    this.link = link; 
    this.what = what; 
    this.object = object; 
} 

@Override 
public HttpModel loadDataFromNetwork() throws Exception { 
    HttpModel httpModel; 
    HttpHeaders headers = new HttpHeaders(); 
    HttpEntity<?> requestEntity; 
    if (!what.equals(LOGIN)) { 
     headers.setContentType(MediaType.APPLICATION_JSON); 
    } else { 
     headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); 
    } 
    requestEntity = new HttpEntity<Object>(body, headers); 
    ResponseEntity<HttpModel> responseEntity = getRestTemplate().exchange(link, httpMethod, requestEntity, HttpModel.class); 
    httpModel = responseEntity.getBody(); 

    return httpModel; 
} 

}

Как я могу получить печенье от ответа ? Я пытаюсь добавить CookieManager в свой класс Request, но dont'work:

final CookieManager cookieManager = new CookieManager(); 
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
CookieHandler.setDefault(cookieManager); 

В почтальона взгляд Cookie, как это: enter link description here

ответ

0

CookieManager используется только для управления куки вашего приложения WebView с.

Вы можете использовать responseEntity.getHeaders().get(COOKIE). Вы также можете попробовать SET_COOKIE или SET_COOKIE2 ключей вместо COOKIE, в зависимости от ответа вашего сервера.