RestHttp

项目地址: RestHttp 简介:Android 基于 HttpURLConnection 简单易用的网络库,支持 Http,Https,Http 文件上传,图片加载,面向接口的 API 调用方式,轻量的设计风格,Android 初学者的学习教程
  • RestHttp 提供了三级缓存(服务器缓存,内存缓存,硬盘缓存),通过动态代理的方式实现了面向接口调用 API。
  • 封装了 HttpURLConnection,简单易用的 API 设计。
  • Debug 模式下设置日志 TAG,所有网络请求日志输出,方便调试。

gradle 依赖

compile 'cn.alien95:resthttp:1.0.5'

使用方法

  • 初始化:设置日志 TAG
public class App extends Application {    @Override    public void onCreate() {        super.onCreate();        RestHttp.initialize(this);        Utils.initialize(this);        RestHttp.setDiskCacheSize(100 * 1024 * 1024);        if (BuildConfig.DEBUG) {            Utils.setDebug(true,"Debug");            RestHttp.setDebug(true, "network");        }    }}

通过接口定义 API

  • API 接口类
public interface ServiceAPI {    //同步请求方式:不能包含 Callback 参数    @POST("/v1/users/login.php")    UserInfo loginPostSync(@Field("name")                   String name,                   @Field("password")                   String password);    //异步请求:必须有一个 Callback 参数作为回调    @POST("/v1/users/login.php")    void loginAsyn(@Field("name")                String name,                   @Field("password")                String password, RestCallback restCallback);    //GET 请求同步    @GET("/v1/users/login_get.php")    UserInfo loginGetSync(@Query("name")                          String name,                          @Query("password")                          String password);    //GET 请求异步    @GET("/213-4")    void getMusicData(@Query("topid") int topId,                      @Query("showapi_appid") String showapiAppId,                      @Query("showapi_sign") String secretKey,                      RestCallback callback);}

Java 类方式请求数据

  • Http --- GET,POST
    public void get(){        mResult.setText("");        HttpRequest.getInstance().get(GET_URL, new HttpCallback() {            @Override            public void success(String info) {                mResult.setText(new Gson().toJson(info));            }        });    }    public void post(){        mResult.setText("");        Map params = new HashMap<>();        params.put("page","1");        HttpRequest.getInstance().addHeader("UID","1");        HttpRequest.getInstance().addHeader("token","9ba712a6210728364ea7c2d7457cde");        HttpRequest.getInstance().post(POST_URL, params,new HttpCallback() {            @Override            public void success(String info) {                mResult.setText(new Gson().toJson(info));            }        });    }
  • Http 文件上传

    HttpFile.getInstance().uploadFile(UPLOAD_URL, null, "picture", mImageFile, new HttpCallback() {   @Override   public void success(String info) {       Utils.Toast(info + " : http://115.29.107.20/image/test_upload.jpg");   }}
  • Https

    HttpsRequest.getInstance().get("https://baidu.com/", new HttpsCallback() {   @Override   public void success(String info) {        mResult.setText(info);   }});

图片加载 --- 支持大图压缩

  • HttpImageView
 
 imageView.setImageUrl(imageUrl);
  • 可以指定压缩比例或固定的宽和高
image.setInSimpleSize(inSimpleSize);image.setImageUrlWithCompress(IMAGE_SMALL_URL, 800, 600);

注意事项

  • 依赖的其他库
    compile 'com.jakewharton:disklrucache:2.0.2'    compile 'com.google.code.gson:gson:2.6.2'

详细用法请看 Demo







更多相关文章

  1. Android 中LocalBroadcastManager的使用方式
  2. Android NestedScrolling解决滑动冲突问题(1) - 相关接口
  3. 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  4. Android请求网络有三种方式:HttpURLConnection、 HttpClient和OkH
  5. Android三种播放视频的方式
  6. android 图片双缓存,开源框架 universali image loader
  7. android中的http访问方式
  8. [置顶] 我的Android进阶之旅------>android异步加载图片显示,并且

随机推荐

  1. android培训文档提纲(一)
  2. Android重要组件之一 Service 服务讲解学
  3. Android原生开关组件
  4. android和java平台统一的DES加密解决方案
  5. 应用程序组件之APP基础(转官方)
  6. CMMB在Android平台上的实现步骤简介
  7. [Android]Android 如何绘制图表
  8. Android Studio创建Android项目生成的文
  9. libcurl库编译生成不带版本的设置方法
  10. 初探Android热修复——tinker接入