项目作者: srtianxia

项目描述 :
compile time http request library
高级语言: Java
项目地址: git://github.com/srtianxia/AnnotationHttp.git
创建时间: 2016-10-06T14:12:14Z
项目社区:https://github.com/srtianxia/AnnotationHttp

开源协议:

下载


AnnotationHttp

compile time http request library

编译时注解的网络请求库,现在只完成了雏形,仅供学习,因为最近看了okhttp的源码,所以请求是仿照okhttp责任链模式封装的HttpURLConnection,负责缓存的链节暂时是一个空实现直接向下传递。至于编译时注解可以看这篇文章

使用方式

定义接口

  1. public interface HttpApi {
  2. @GET("http://www.jianshu.com/")
  3. void jianshu(Callback callback);
  4. @GET("http://www.zhihu.com/")
  5. void zhihu(Callback callback);
  6. }

使用

  1. private HttpApi mApi = ApiFactory.create(HttpApi.class);
  2. mApi.zhihu(new Callback() {
  3. @Override public void onResponse(Response response) {
  4. log(response.string());
  5. }
  6. @Override public void onFailure() {
  7. }
  8. });

目前只提供了string类型的数据格式,自行解析吧。

apt生成的代码样式

  1. // Generated code from AnnotationHttp. Do not modify!
  2. import com.srtianxia.httplibs.Callback;
  3. import com.srtianxia.httplibs.HttpClient;
  4. import com.srtianxia.httplibs.Request;
  5. public class HttpApi_Proxy implements com.srtianxia.annotationhttp.HttpApi {
  6. private HttpClient mClient = new HttpClient();
  7. @Override public void jianshu(Callback callback) {
  8. mClient.newCall(new Request.Builder().url("http://www.jianshu.com/").build())
  9. .enqueue(callback);
  10. }
  11. @Override public void zhihu(Callback callback) {
  12. mClient.newCall(new Request.Builder().url("http://www.zhihu.com/").build())
  13. .enqueue(callback);
  14. }
  15. }