OKHTTP请求+拦截器+Gson单利(攻击类)
来源:互联网 发布:小甲鱼c语言第一章 编辑:程序博客网 时间:2024/06/15 23:46
一.使用OK需要添加依赖
compile 'com.squareup.okhttp3:okhttp:3.9.1'
二.使用Gson添加依赖
compile 'com.google.code.gson:gson:2.8.1'
三.OKHTTP的使用
package com.bwie.skn.djmalldeom.utils;import android.os.Handler;import android.util.Log;import com.bwie.skn.djmalldeom.config.OKHttpCallBack;import java.io.IOException;import java.util.Map;import okhttp3.Call;import okhttp3.Callback;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * author:Created by WangZhiQiang on 2017/12/5. */public class OKHttpUtils { private static OKHttpUtils okHttpUtils; private static Handler handler = new Handler(); //私有化构造方法 public OKHttpUtils(){ } /** * 获取OKhttpClient实例化 */ public static OKHttpUtils getInstance(){ if(null == okHttpUtils){ synchronized (OKHttpUtils.class){ if (null == okHttpUtils){ okHttpUtils = new OKHttpUtils(); } } } return okHttpUtils; } /** * 封装的异步Get请求 */ public void doGet(String path, Map<String,String>map, final OKHttpCallBack okHttpCallBack){ //创建一个字符串容器 StringBuilder sb = null; if (null==map){ if (null ==sb){ sb = new StringBuilder(); sb.append(path); } }else { for (String key:map.keySet()){ if (null == sb){ sb = new StringBuilder(); sb.append("?"); }else{ sb.append("&"); } sb.append(key).append("=").append(map.get(key)); } }// StringBuilder sb = new StringBuilder();// sb.append(path).append("?");// for(Map.Entry entry:map.entrySet()){// sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");// }//// sb.deleteCharAt(sb.lastIndexOf("&")); //Log.e("WWWWW",sb.toString()); ////////////////// OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new Intercept())//使用拦截器 .build(); Request request = new Request.Builder() .url(path+sb.toString()) .get() .build(); //OKHttp 网络 Call call = okHttpClient.newCall(request); //异步请求 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { //请求失败 Log.e("TAG","OK请求失败"); okHttpCallBack.onFailed(e.getMessage()); } @Override public void onResponse(Call call, final Response response) throws IOException { final String str = response.body().string(); //请求成功 handler.post(new Runnable() { @Override public void run() { Log.e("TAG","请求成功"+str); okHttpCallBack.onSuccess(str) ; } }); } }); }}
四.拦截器的使用
package com.bwie.skn.djmalldeom.utils;import java.io.IOException;import okhttp3.HttpUrl;import okhttp3.Interceptor;import okhttp3.Request;import okhttp3.Response;/** * author:Created by Conan on 2017/12/14. */public class Intercept implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); HttpUrl url=original.url().newBuilder() .addQueryParameter("source","android") .build(); //添加请求头 Request request = original.newBuilder() .url(url) .build(); return chain.proceed(request); }}
五.Gson的单利
package com.bwie.skn.djmalldeom.utils;import com.google.gson.Gson;/** * @date:2017-12-02 * @time:23:10 */public class GsonUtils { private static Gson gson; public static Gson getInstance(){ if(gson==null){ gson=new Gson(); } return gson; }}
阅读全文
0 0
- OKHTTP请求+拦截器+Gson单利(攻击类)
- OkHttp数据请求和OkHttp拦截器
- okhttp拦截器网络请求
- okhttp拦截器添加请求头
- 自定义OKhttp拦截器 添加请求头
- OkHttp:拦截器之网络请求Log
- Android----OKHttp网络请求-拦截器
- OkHttp二次封装请求 拦截器
- Android OkHttp网络请求拦截器
- OkHttp拦截请求与相应,以及控制台打印日志(Interceptor拦截器)
- OkHttp拦截器(简译)
- OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现
- OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现
- OkHttp - 拦截器(Interceptor) 重新定义请求 Request
- OkHttp中Interceptor拦截器之公共参数请求封装
- Android——自定义拦截器实现OKHttp网络请求
- Android——自定义拦截器实现OKHttp网络请求
- okHttp拦截器放在doGet和doPost请求中
- java入门到开发系列技术学习资源
- 【哈尔滨理工大学第七届程序设计竞赛决赛(高年级组)】 A B C D E G
- 第五节课 (数组)
- 安装JRebel后tomcat启动失败
- Web性能优化——雅虎军规
- OKHTTP请求+拦截器+Gson单利(攻击类)
- Ubuntu16.04+Pycharm+Anaconda配置
- Objective-C Runtime 运行时(2)
- (猜想)未来我们的优势在哪里
- 全新安装Windows10系统(PE下)
- HIVE和HBASE区别
- Android实现luckyTurnTable(幸运大转盘)
- Spark笔记4-编程模型map/repartitions等
- html 基础知识