package com.baidu.disconf.core.common.restful.type;
import java.net.URL;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpRequestBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baidu.disconf.core.common.restful.core.UnreliableInterface;
import com.baidu.disconf.core.common.utils.http.impl.HttpResponseCallbackHandlerJsonHandler;
import com.baidu.disconf.core.common.utils.http.HttpClientUtil;
import com.baidu.disconf.core.common.utils.http.HttpResponseCallbackHandler;
/**
* RestFul get
*
* @author liaoqiqi
* @version 2014-6-16
*/
public class RestfulGet<T> implements UnreliableInterface {
protected static final Logger LOGGER = LoggerFactory.getLogger(RestfulGet.class);
private HttpRequestBase request = null;
private HttpResponseCallbackHandler<T> httpResponseCallbackHandler = null;
public RestfulGet(Class<T> clazz, URL url) {
HttpGet request = new HttpGet(url.toString());
request.addHeader("content-type", "application/json");
this.request = request;
this.httpResponseCallbackHandler = new
HttpResponseCallbackHandlerJsonHandler<T>(clazz);
}
/**
* Get数据
*/
@Override
public T call() throws Exception {
T value = HttpClientUtil.execute(request, httpResponseCallbackHandler);
return value;
}
}