我需要在Android本机应用程序的https连接上使用cookie.我正在使用RestTemplate.
检查其他线程(例如,使用RestTemplate设置安全cookie)我能够在http连接中处理cookie:
restTemplate.setRequestFactory(new YourClientHttpRequestFactory());
Run Code Online (Sandbox Code Playgroud)
哪里 YourClientHttpRequestFactory extends SimpleClientHttpRequestFactory
这适用于http但不适用于https.
另一方面,我能够解决Android信任SSL证书的https问题:
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpUtils.getNewHttpClient()));
Run Code Online (Sandbox Code Playgroud)
这里描述了HttpUtils:http: //www.makeurownrules.com/secure-rest-web-service-mobile-application-android.html
我的问题是我需要使用ClientHttpRequestFactory的单个实现.所以我有3个选择:
1)找到一种使用SimpleClientHttpRequestFactory处理https的方法
2)找到一种使用HttpComponentsClientHttpRequestFactory处理cookie的方法
3)使用另一种方法
我正在开发一个项目,我需要对我的服务器进行HTTP URL调用,该服务器正在运行Restful Service,它将响应返回为JSON String.
下面是我使用未来和callables的主要代码:
public class TimeoutThreadExample {
private ExecutorService executor = Executors.newFixedThreadPool(10);
private RestTemplate restTemplate = new RestTemplate();
public String getData() {
Future<String> future = executor.submit(new Task(restTemplate));
String response = null;
try {
response = future.get(500, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
下面是我的Task类,它实现了Callable接口并使用RestTemplate:
class Task implements Callable<String> {
private RestTemplate restTemplate;
public …Run Code Online (Sandbox Code Playgroud)