2015-01-08 74 views
0

我想在Robospice使用cookie,我有香料的服务:饼干在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; 
} 

}

如何从响应得到的cookie ?我尝试将CookieManager添加到我的Request类中,但不工作:

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_COOKIESET_COOKIE2键而不是COOKIE,具体取决于您的服务器的响应。