compile time http request library
compile time http request library
编译时注解的网络请求库,现在只完成了雏形,仅供学习,因为最近看了okhttp
的源码,所以请求是仿照okhttp
的责任链模式封装的HttpURLConnection
,负责缓存的链节暂时是一个空实现直接向下传递。至于编译时注解可以看这篇文章
public interface HttpApi {
@GET("http://www.jianshu.com/")
void jianshu(Callback callback);
@GET("http://www.zhihu.com/")
void zhihu(Callback callback);
}
private HttpApi mApi = ApiFactory.create(HttpApi.class);
mApi.zhihu(new Callback() {
@Override public void onResponse(Response response) {
log(response.string());
}
@Override public void onFailure() {
}
});
目前只提供了string类型的数据格式,自行解析吧。
// Generated code from AnnotationHttp. Do not modify!
import com.srtianxia.httplibs.Callback;
import com.srtianxia.httplibs.HttpClient;
import com.srtianxia.httplibs.Request;
public class HttpApi_Proxy implements com.srtianxia.annotationhttp.HttpApi {
private HttpClient mClient = new HttpClient();
@Override public void jianshu(Callback callback) {
mClient.newCall(new Request.Builder().url("http://www.jianshu.com/").build())
.enqueue(callback);
}
@Override public void zhihu(Callback callback) {
mClient.newCall(new Request.Builder().url("http://www.zhihu.com/").build())
.enqueue(callback);
}
}