tfgzhang / EasyHttp

Android 网络通信组件;支持get/post请求,下载,断点续传,上传;Get/Post请求完美支持String,Json,自定义对象返回;支持全局缓存,各个接口不同缓存策略;使用方式简单;轻量级代码,结构清晰;基于OKHTTP3;数据库使用GreenDao

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EasyHttp

License Download

特性

  • 支持Get请求
  • 支持Post请求
  • Get/Post请求完美支持String,Json,自定义对象返回
  • Get支持全局缓存设置及不同请求不同缓存设置
  • 支持文件下载及下载管理
  • 支持文件下载的断点续传
  • 支持文件上传
  • 使用简单;轻量级代码;结构清晰
  • 基于okhttp3
  • 下载管理数据库使用greendao

最新版本

  • v0.6.0 - 2017.02.27 - Get/Post请求完美支持String,Json,自定义对象返回;下载模块添加异常检测及容错处理
  • v0.5.0 - 2017.02.21 - 初版发布,支持Get、Post、下载、上传、断点续传、不同缓存策略等

ScreenShot

main

使用指南

With Gradle

在全局build.gradle文件的repositories添加如下所示配置:

jcenter()

在module的build.gradle文件的dependencies区域内添加如下所示配置:

compile 'com.yang.easyhttp:easyhttp:0.6.0'

初始化

在Applicaiton里进行初始化。

public class MainApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // 初始化HttpClient.
        EasyHttpClient.init(this);

        // 初始化下载环境.optional.
        EasyHttpClient.initDownloadEnvironment(2);

    }
}

Get 请求

EasyHttp提供EasyHttpClient.get接口用来异步请求网络数据。
返回自定义对象eg:

EasyHttpClient.get(url, new EasyCustomCallback<Entity>() {
  @Override
  public void onStart() {//ui thread.
      dialog.show();
  }

  @Override
  public void onFinish() {//ui thread.
      dialog.cancel();
  }

  @Override
  public void onSuccess(Entity content) {//ui thread.
      // ui operation using content object.
  }

  @Override
  public void onFailure(Throwable error, String content) {//ui thread.
      body.setText(content + "\n" +error.toString());
  }
});

Get请求接口列表如下:

public static <T> void get(String url, EasyCallback<T> callback);
public static <T> void get(String url, EasyRequestParams easyRequestParams, EasyCallback<T> callBack);
public static <T> void get(String url, int cacheType, EasyCallback<T> callback);
public static <T> void get(String url, EasyRequestParams easyRequestParams, int cacheType, EasyCallback<T> callback);

返回的是Json对象时,可以使用EasyJsonCallback作为回调。

返回的是普通的字符串,可以使用EasyStringCallback作为回调。

EasyRequestParams用来设定请求的参数。

EasyCacheType用来设定每个请求的缓存类型。

Post请求

EasyHttp提供EasyHttpClient.post接口用来异步post数据。

EasyRequestParams params = new EasyRequestParams();
params.put("key1", "value1");
params.put("key2", "value2");

EasyHttpClient.post(postUrl,
        params,
        new EasyStringCallback() {
            @Override
            public void onStart() {
                dialog.show();
            }

            @Override
            public void onFinish() {
                dialog.cancel();
            }

            @Override
            public void onSuccess(String content) {
                Toast.makeText(PostActivity.this, "提交成功", Toast.LENGTH_LONG);
                result.setText(content);
            }

            @Override
            public void onFailure(Throwable error, String content) {
                Toast.makeText(PostActivity.this, "提交失败", Toast.LENGTH_LONG);
                result.setText(content + "\n" + error.getMessage());
            }
        }
);

Post请求接口列表如下:

public static <T> void post(String url, EasyRequestParams easyRequestParams, EasyCallback<T> callback)

同Get请求类似,返回的是Json数据,可以使用EasyJsonCallback类来作为回调。

返回的是普通的字符串,可以使用EasyStringCallback作为回调。

EasyRequestParams用来设定post的键值对。

Download File

初始化时可通过initDownloadEnvironment(int threadCount)来设定同时下载的数量。

跟下载相关的类包括:

  • EasyDownloadManager 负责管理下载任务
  • EasyDownloadTask 下载任务
  • EasyDownloadTaskListener 下载回调
  • EasyTaskEntity 任务的实体
  • EasyTaskStatus 下载的状态

关于下载的管理,可以参考sampe中的DownloadAdapter文件,实现了文件的下载,断点续传,进度展示等通用功能。

Upload File

EasyHttp提供EasyHttpClient.uploadFile接口用来上传文件。接口如下:

public static <T> void uploadFile(String url, String filePath, EasyCallback<T> callback) 

About

Android 网络通信组件;支持get/post请求,下载,断点续传,上传;Get/Post请求完美支持String,Json,自定义对象返回;支持全局缓存,各个接口不同缓存策略;使用方式简单;轻量级代码,结构清晰;基于OKHTTP3;数据库使用GreenDao

License:Apache License 2.0


Languages

Language:Java 100.0%