OKhttp使用
来源:互联网 发布:淘宝开店审核多久 编辑:程序博客网 时间:2024/05/06 15:55
之前就听说OKhttp很火,后面自己参考了一些资料学习了一下,最后又学了看了Retrofit的使用,并且还用在了现在的项目中,最后个人感觉Retrofit确实感觉比较正式,高度解耦,适合大型且后台接口稳定(不能频繁更换接口)很多人维护的项目,在一些小项目中使用反而增加了麻烦程度,所以今天特地总结一些OKhttp的使用。
添加依赖: compile ‘com.squareup.okhttp3:okhttp:3.4.1’ okhttp
下面代码片段中有一段是写在Application中的,在实际项目中也是这样用的,只需要实例化一次,而且加了缓存功能
okc = new OkHttpClient .Builder() .connectTimeout(5, TimeUnit.SECONDS) .cache(new Cache("缓存的地址","缓存的大小")) .build();
同步GET请求
Request rest = new Request.Builder().get().url(my_url).build(); MyAppclition.okc.newCall(rest).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { /**子线程*/ Log.e("tag", "是否在主线程" + isMainThread()); Log.e("tag", "异步" + response.body().string());//拿到JSON //response.body().byteStream() 可以拿到输入数据流 } });
异步GET请求
new Thread(new Runnable() { @Override public void run() { try { Request yibu = new Request.Builder().get().url(my_url).build(); Response execute = MyAppclition.okc.newCall(yibu).execute(); /**子线程*/ Log.e("tag_yibu", execute.body().string()); Log.e("tag_yibu", "是否在主线程" + isMainThread()); } catch (IOException e) { e.printStackTrace(); } } }).start();
post
RequestBody builder = new FormBody.Builder().add("market","SH").build(); Request pos = new Request.Builder().post(builder).url("http://gk.cdtzb.com/api/product/stockList").build(); MyAppclition.okc.newCall(pos).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { /**子线程*/ Log.e("tag_post", "是否在主线程" + isMainThread()); Log.e("tag_post", "异步" + response.body().string());//拿到JSON //response.body().byteStream() 可以拿到输入数据流 } });
大家看到了其实如果用原生的方式确实挺麻烦的,如果以后有时间可以自己研究封装一下更方便,下面再介绍一个别人封装好的
github:https://github.com/hongyangAndroid/okhttputils
有很详细的使用介绍
0 0
- OKHttp使用
- OkHttp 使用
- OKHttp 使用
- okhttp使用
- OKHTTP使用
- Okhttp使用
- Okhttp使用
- Okhttp使用
- okhttp使用
- OkHttp 使用
- okhttp使用
- OkHttp使用
- OkHttp使用
- OKHTTP 使用
- okhttp使用
- OKhttp使用
- okhttp使用
- 使用okhttp
- 【JZOJ4937】与运算 题解
- Python计算机视觉工具安装
- 最后的代码
- JPA学习(四)
- 最长连续字符
- OKhttp使用
- 最近公共祖先(LCA)---倍增法
- linux: gcc消除未使用警告
- 关于学习vs心得
- Trie树模板(插入和查询)
- 内核定时器 用法与实法 init_timer timer
- 1553B总线_BC端
- SpringMVC创建web项目基础之(一)------项目管理利器Maven的使用
- MFC入门