Android网络框架

Android--OKHttpUtils基本使用

2017-11-27  本文已影响52人  ZebraWei

**版权声明:本文为小斑马伟原创文章,转载请注明出处!

OKHttpUtils:一个专注于让网络请求更简单的网络请求框架,对于任何形式的网络请求只需要一行代码。它是OKHttp的一次二次封装,封装的目的是让网络请求更加方便。

一、 OKHttpUtils优势
二、 OKHttpUtils引入

compile'com.lzy.net:okhttputils:1.8.1'
或者
compile'com.lzy.net:okhttputils:+'

三、OKHttpUtils配置

这个配置一般在Application,或者在基类中,用一次就可以了。
//进行全局的配置。

    OkHttpUtils.init(this);
四、OKHttpUtils回调

AbsCallback:所有回调的父类,抽象类
StringCallBack:如果返回值类型是纯文本数据,即可使用该回调
BitmapCallback:如果请求的是图片数据,则可以使用该回调
FileCallBack:如果要做文件下载,则必须使用该回调,内部封装了文件下载进度回调等方法。

我们也可以根据自己自定义自己CallBack。

五、OKHttpUtils同步请求

OKHttpUtils同步请求 不需要传进CallBack,也就是说调了这个方法后,没有CallBack就是同步请求,传了CallBack就是异步请求。

Response response = OkHttpUtils.get("http://www.baidu.com")
     .tag(this)
     .headers("header1","111")
     .param("perams","222")
     .execute();

OkHttpUtils取消请求
//根据Tag取消请求
OkHttpUtils.getInstance().cancelTag(this); //传入相应的tag标记。

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.getBtn).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            okHttpUtilsGET();
        }
    });

    findViewById(R.id.postBtn).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            okHttpUtilsPOST();
        }
    });

    /**
     * GET请求
     */
    private void okHttpUtilsGET() {
        OkHttpUtils.get("http://www.android.com")
                .tag("get")
                .cacheKey("getCacheKey")
                .cacheMode(CacheMode.DEFAULT)
                .execute(new StringCallback() {

                    @Override
                    public void onSuccess(String s, Call call, Response response) {
                        Log.i("test","")
                    }
                });
    }

/**
 * POST请求
 */
private void okHttpUtilsPOST() {
    OkHttpUtils.post("http://www.android.com")
            .tag("get")
            .cacheKey("getCacheKey")
            .cacheMode(CacheMode.DEFAULT)
            .params("key","value")
            .params("fileName",new File(""))
            .upJson("your json")
            .execute(new StringCallback(){

                @Override
                public void onSuccess(String s, Call call, Response response) {
                    Log.i("test",s);
                }
            });
}

@Override
protected void onDestroy() {
    super.onDestroy();

    OkHttpUtils.getInstance().cancelTag("get");
    }
}
上一篇 下一篇

猜你喜欢

热点阅读