Okhttp框架搭建及拦截器
来源:互联网 发布:java工程师转行 编辑:程序博客网 时间:2024/05/19 01:30
本代码是由借鉴他人博客并加以改进所成
拦截器需要添加依赖:
compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
代码public class OkhttpUtils { //声明客户端 private OkHttpClient client; //防止多个线程同时访问所造成的安全隐患 private volatile static OkhttpUtils utils; //定义提交类型Json private static final MediaType JSON = MediaType.parse("application/json;charset=utf-8"); //定义提交类型String private static final MediaType STRING = MediaType.parse("text/x-markdown;charset=utf-8"); //子线程 private Handler handler; //构造方法 private OkhttpUtils(){ HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); client=new OkHttpClient.Builder() .addInterceptor(logging) .build(); handler=new Handler(Looper.getMainLooper()); } //单例模式 public static OkhttpUtils getInstance(){ if(utils==null){ //线程同步锁 synchronized (OkhttpUtils.class){ if(utils==null){ utils=new OkhttpUtils(); utils=utils; } } } return utils; } //网络请求 public void syncJsonStringByUrl(String url, final FuncJsonString callback){ Request request=new Request.Builder().url(url).build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.i("TAG", "解析失败"); } @Override public void onResponse(Call call, Response response) throws IOException { if(response!=null&&response.isSuccessful()){ OnSuccessJsonString(response.body().string(),callback); } } }); } //post提交表单数据 public void sendDataForClicent(String url, Map<String,String> params, final Class clazz, final FuncJsonString callback){ //表单对象,包含input开始的操作 FormBody.Builder from=new FormBody.Builder(); if(params != null && !params.isEmpty()){ for (Map.Entry<String,String> entry:params.entrySet()){ //装载表单值 from.add(entry.getKey(),entry.getValue()); } } RequestBody body=from.build(); //post提交 Request request=new Request.Builder().url(url).post(body).build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.i("TAG", "解析失败"); } @Override public void onResponse(Call call, Response response) throws IOException { if(response!=null&&response.isSuccessful()){ Gson gson=new Gson(); final BaseBean b= (BaseBean) gson.fromJson(response.body().string(),clazz); OnSuccessJsonString(b.code,callback); } } }); } //返回json字符串的接口 public interface FuncJsonString{ void onResponse(String result); } //请求的返回是json字符串 private void OnSuccessJsonString(final String jsonValue, final FuncJsonString callback){ handler.post(new Runnable() { @Override public void run() { if(callback!=null){ try { callback.onResponse(jsonValue); }catch (Exception e){ } } } }); }}
阅读全文
0 0
- Okhttp框架搭建及拦截器
- OkHttp框架加拦截器
- Okhttp 拦截器
- okhttp 拦截器调用。
- OkHttp-Interceptors拦截器
- okhttp拦截器+Imageloader
- OkHttp拦截器
- okhttp拦截器
- Okhttp的拦截器
- okhttp应用拦截器
- okhttp拦截器
- Okhttp网络拦截器
- okhttp添加拦截器
- okhttp网络拦截器
- OkHttp拦截器
- 添加okhttp拦截器
- OKhttp拦截器
- OkHttp之拦截器
- 中电海康校招面试数据存储与处理事业部
- 地质英语---地质年代图
- 万维网的发明者——蒂莫西
- Java编程思想第7章习题
- android 让一个控件按钮居于底部的几种方法
- Okhttp框架搭建及拦截器
- 1009. 说反话 (20)
- 整洁代码之道——重构
- AngularJs的过滤器:filter、orderBy、date、currency、uppercase
- ######纯注解ssh环境:crm系统实体类设计 ①客户信息的【数据字典】表的产生原因+②设计理解:【字典类没有添加客户属性的原因】=深刻理解类间关联,建立在有需求的基础上。
- 第七周 项目 1
- 【makefile】一起写makefile(二)--总述
- 如何为公众号添加私教瑜伽课程微信预约系统
- springSecurity第一个入门Demo