package com.dayu.qiheonlinelibrary.net; import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.utils.SharedPreferencesHelper; import com.dayu.qiheonlinelibrary.utils.ToastUtil; import com.tencent.bugly.crashreport.CrashReport; import java.io.IOException; import java.util.HashMap; import java.util.Map; import okhttp3.FormBody; import okhttp3.Interceptor; import okhttp3.MediaType; import okhttp3.Protocol; import okhttp3.Request; import okhttp3.RequestBody; 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 = chain.proceed(myRequest); return response; } else { ToastUtil.showToastLong(QHOnLineApplication.qhAloneApplication.application, "请检查网络连接!!"); } } 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 { RequestBody body = request.body(); if (body instanceof FormBody) { FormBody oldFormBody = (FormBody) body; if (oldFormBody != null && oldFormBody.size() > 0) { //处理body } } builder.addHeader("os", "app"); builder.addHeader("Authorization", SharedPreferencesHelper.getInstance(QHOnLineApplication.qhAloneApplication.application).get("token", "")); } return builder.build(); } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); } return null; } /** * 网络错误时的异常处理 * * @param request * @return */ public Response getNullResponse(Request request) { 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(); } }