package com.mossle.core.http;
import java.io.IOException;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class HttpFuture implements Callable<String> {
private String url;
public HttpFuture(String url) {
this.url = url;
}
public String call() throws Exception {
return new HttpHandlerImpl().readText(url);
}
public String readText(ExecutorService executorService, long timeout)
throws IOException, InterruptedException, ExecutionException,
TimeoutException {
FutureTask<String> futureTask = new FutureTask(this);
executorService.execute(futureTask);
String text = futureTask.get(timeout, TimeUnit.MILLISECONDS);
return text;
}
}