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(); 
 | 
    } 
 | 
} 
 |