| package com.dayu.qiheonlinelibrary.net; | 
|   | 
| import android.text.TextUtils; | 
|   | 
| import com.dayu.qiheonlinelibrary.QHOnLineApplication; | 
| import com.tencent.bugly.crashreport.CrashReport; | 
|   | 
| import java.io.IOException; | 
| import java.net.ConnectException; | 
| import java.util.HashMap; | 
| import java.util.Map; | 
|   | 
| import okhttp3.Interceptor; | 
| import okhttp3.MediaType; | 
| import okhttp3.Protocol; | 
| import okhttp3.Request; | 
| import okhttp3.Response; | 
| import okhttp3.ResponseBody; | 
|   | 
| /** | 
|  * Copyright (C), 2023, | 
|  * Author: zuo | 
|  * Date: 2023-05-10 10:12 | 
|  * Description: | 
|  */ | 
| public class MyIntercepterApplication implements Interceptor { | 
|     @Override | 
|     public Response intercept(Chain chain) throws IOException { | 
|         Request request = chain.request(); | 
|         try { | 
|   | 
|             Request myRequest = createRequest(chain.request()); | 
|             if (myRequest != null) { | 
|                 Response response = null; | 
|                 try { | 
|                     response = chain.proceed(myRequest); | 
|                 } catch (ConnectException e) { | 
|                     e.printStackTrace(); | 
|                     return getNullResponse(request); | 
|                 } | 
|                 return response; | 
|             } | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|             CrashReport.postCatchedException(e); | 
|         } | 
|         return getNullResponse(request); | 
|     } | 
|   | 
|     protected Request createRequest(Request request) { | 
|         try { | 
|             Request.Builder builder = request.newBuilder(); | 
|             Map params = new HashMap(); | 
|             if (request.method().equals("GET")) { | 
|                 builder.url(request.url().toString()); | 
|             } else { | 
|                 if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().tokenStr)) { | 
|                     builder.addHeader("Token-Cloud", QHOnLineApplication.getInstance().tokenStr); | 
|                 } | 
|             } | 
|             return builder.build(); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|             CrashReport.postCatchedException(e); | 
|         } | 
|         return null; | 
|   | 
|     } | 
|   | 
|     /** | 
|      * 网络错误时的异常处理 | 
|      * | 
|      * @param request | 
|      * @return | 
|      */ | 
|     public Response getNullResponse(Request request) { | 
|         // 显示Toast提示 | 
|         int code = 20010; | 
|         String message = "咦,请检查网络"; | 
|         String errJson = "{\"code\":" + code + ",\"message\":\"" + message + "\"}"; | 
|         Response.Builder builder = new Response.Builder().body(ResponseBody.create(MediaType.parse("application/json"), errJson)); | 
|         builder.request(request); | 
|         builder.protocol(Protocol.HTTP_1_1); | 
|         builder.code(200); | 
|         builder.message(message); | 
|         return builder.build(); | 
|     } | 
| } |