Okhttp工具类
来源:互联网 发布:pdf阅读器有没有mac 编辑:程序博客网 时间:2024/06/05 00:19
创建OkHttpUtils
package code.feihu.com.shangfeihu_yuekao.okhttp;import android.os.Handler;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Interceptor;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;public class OkHttpUtils { private Handler handler = new Handler(); public Handler getHandler(){ return handler; } //单例 private static OkHttpUtils okHttpUtils = new OkHttpUtils(); private OkHttpUtils(){}; public static OkHttpUtils getInstance(){ return okHttpUtils; } private OkHttpClient client; private void initOkHttpClient(){ if(client == null){ client = new OkHttpClient.Builder().build(); } } Interceptor appInterceptor = new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); //---------请求之前------------ Response response = chain.proceed(request); //---------请求之后------------ return response; } }; //公用的get请求方法 完成的功能不确定 public void doGet(String url, Callback callback){ initOkHttpClient(); Request request = new Request.Builder(). url(url).build(); Call call = client.newCall(request); call.enqueue(callback); }}
创建OnUiCallback
package code.feihu.com.shangfeihu_yuekao.okhttp;import android.os.Handler;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public abstract class OnUiCallback implements Callback{ private Handler handler = OkHttpUtils.getInstance().getHandler(); public abstract void onFailed(Call call, IOException e); public abstract void onSuccess(String result) throws IOException; @Override public void onFailure(final Call call, final IOException e) { //该方式 存在问题 网络请求也跑到了主线程 待解决 //该方法就是把 线程post到handler所在的线程 handler.post(new Runnable() { @Override public void run() { onFailed(call, e); } }); } @Override public void onResponse(final Call call, final Response response) throws IOException { final String result = response.body().string(); //该方式 存在问题 网络请求也跑到了主线程 待解决 handler.post(new Runnable() { @Override public void run() { try { onSuccess(result); } catch (IOException e) { e.printStackTrace(); } } }); }}
阅读全文
0 0
- okhttp框架 工具类
- 工具类4.0 OkHttp
- Okhttp 工具类
- okhttp工具类
- OkHttp工具类
- Okhttp工具类封装
- Okhttp工具类
- Okhttp封装工具类
- okhttp工具类
- 封装OkHttp工具类
- okhttp封装工具类
- android OkHttp工具类
- OKHTTP工具类
- 封装OKHttp,工具类
- OkHttp网络解析工具类
- OKhttp的使用-工具类
- OkHttp网络连接工具类
- okHttp的一个工具类
- Okhttp网络请求
- GeekBand笔记-《STL与泛型编程 》 第四周
- Unity_与线程的关联
- non-local Means(非局部均值)降噪算法及快速算法原理与实现
- Swift协议合成
- Okhttp工具类
- Java:计算圆形和长方形的面积
- 线程的五大状态
- 10月25日 c语言 找到10000以内所有完数
- flask web开发-用户认证代码分析(三)
- Apache服务器的下载与安装
- Swift委托代理实现
- FastCgi与PHP-fpm之间是个什么样的关系
- jq 自定义动画animate