美文网首页
简单封装OkHttp

简单封装OkHttp

作者: TASTUYA | 来源:发表于2018-11-14 11:50 被阅读0次

1.首先导入依赖

 implementation'com.squareup.okhttp3:okhttp:3.10.0'

2.新建一个class

//封装OkHttpUtils 
public class OkHttpUtils {

    public OkHttpUtils() {

}

    public OkHttpUtils get(String path) {

        OkHttpClient okHttpClient = new OkHttpClient();

        Request request = new Request.Builder()

                .get()

                .url(path)

                .build();

        okHttpClient.newCall(request).enqueue(new Callback() {

            @Override

            public void onFailure(Call call, IOException e) {

}

            @Override

            public void onResponse(Call call, Response response) throws IOException {

                getData.Data(response.body().string());

            }

        });

        return this;

    }

    //写一个接口

    public interface GetData {

        void Data(String s);

    }

    private GetData getData;

    public void getDataLisener(GetData getData) {

        this.getData = getData;

    }

}

3.在Activity中调用


public class MainActivity extends AppCompatActivity {

    private ListView listView;

    private String path = "http://www.xieast.com/api/news/news.php?page=1";

    private ArrayList<User.Data> list;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

       //找控件

        listView = (ListView) findViewById(R.id.listview);

        SearchView searchView = (SearchView) findViewById(R.id.searchView);

        searchView.setQueryHint("请输入搜索内容");

        searchView.setIconifiedByDefault(false);

        OkHttpUtils okHttpUtils = new OkHttpUtils();

        okHttpUtils.get(path).getDataLisener(new OkHttpUtils.GetData() {

            @Override

            public void Data(String s) {

                list = new ArrayList<>();

                Gson gson = new Gson();

                User user = gson.fromJson(s, User.class);

                ArrayList<User.Data> data = user.getData();

                list.addAll(data);

                Message message = Message.obtain();

                message.obj = list;

                handler.sendMessage(message);

            }

        });

    }

    Handler handler = new Handler(){

        @Override

        public void handleMessage(Message msg) {

            super.handleMessage(msg);

            MyAdapter myAdapter = new MyAdapter(MainActivity.this,list);

            listView.setAdapter(myAdapter);

        }

    };

}

相关文章

  • OkHttp通用简单封装

    CommonOkHttp--通用OkHttp简单封装 一个用于Java应用(非安卓)的OkHttp的简单封装git...

  • Android高级开发之【OkHttp】详解(附项目源码)

    文章大纲 一、OkHttp简介二、OkHttp简单使用三、OkHttp封装四、项目源码下载 一、OkHttp简介 ...

  • OkHttp简单封装

    使用链式编程思想封装网络请求客户端 } OkHttp初始化设置,请求返回处理 // ...

  • 简单封装OkHttp

    1.首先导入依赖 2.新建一个class 3.在Activity中调用

  • Okhttp简单封装

    一、Okhttp简介Android为我们提供了两种HTTP交互的方式: HttpURLConnection 和 A...

  • OKHttp简单封装

    接口: 管理类 使用

  • okhttp简单封装

    在github 维护最新代码https://github.com/fufufufuli/fuli-util 历史版本如下

  • OkHttp 的简单封装

    OkhttpIntegration 目前对应 OkHttp 版本3.8.1. Demo地址 使用 Android ...

  • OkHttp的简单封装

    关于OkHttp的基础使用可以看我之前写的这篇文章 但是每次写网络请求,都要写一大堆重复的东西,所以肯定要封装一下...

  • OkHttp的简单封装

    主要是记录一下封装的思路~ 封装的好处: 1.可复用性 2.与业务逻辑隔离 3.可扩展性 封装的思路: 封装一个公...

网友评论

      本文标题:简单封装OkHttp

      本文链接:https://www.haomeiwen.com/subject/ovwdfqtx.html