Okhttp
来源:互联网 发布:汽车调色软件 编辑:程序博客网 时间:2024/06/03 05:02
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);
}
}
======================================================================
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();
}
}
});
}
}
- OkHttp
- okhttp
- OkHttp
- OkHttp
- OkHttp
- okhttp
- OKHTTP
- okhttp
- Okhttp
- okHttp
- OkHttp
- okhttp
- Okhttp
- okhttp
- OkHttp
- okhttp
- okhttp
- okhttp
- C6748_RS485
- OKHttp
- CSS-属性选择器
- 西瓜书《机器学习》课后答案——chapter10 _10.1 KNN算法
- XHTML与HTML
- Okhttp
- CSS-伪类选择器
- ImageLoader 框架 图片下载失败重试
- 【MFS】部署及运维
- NLP02-Gensim语料与向量空间
- Django 注册邮箱验证
- Oracle之一条SQL对应多个执行计划
- 简单servlet第二篇--load-on-startup的用法
- javaSE面试题一,变量,操作符