日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

云炬Android开发笔记 5-9,10拦截器功能设计与实现

發(fā)布時(shí)間:2025/3/15 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云炬Android开发笔记 5-9,10拦截器功能设计与实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

6.攔截器功能設(shè)計(jì)與實(shí)現(xiàn)之?dāng)r截器的初始化

【說明】沒有搭建服務(wù)器,然后使用okhttp庫中的攔截功能,將接收到請求之后做出響應(yīng),返回json文件;

?

6.1【配置文件中的攔截器的配置】

?

?

6.2 將配置文件中的interceptors請求配置到okhttp

【接收請求】

?

7.攔截器功能設(shè)計(jì)與實(shí)現(xiàn)之模擬請求

【說明】模擬服務(wù)器:獲取傳入的參數(shù),

【get方法】則:從url獲取參數(shù);

【post方法】:從請求體中獲取參數(shù);

7.1 基類封裝

?

?

7.3 調(diào)試類封裝

?

?

1 package com.flj.latte.net.interceptors;2 3 import android.support.annotation.NonNull;4 import android.support.annotation.RawRes;5 6 import com.flj.latte.util.file.FileUtil;7 8 import java.io.IOException;9 10 import okhttp3.MediaType; 11 import okhttp3.Protocol; 12 import okhttp3.Response; 13 import okhttp3.ResponseBody; 14 15 16 public class DebugInterceptor extends BaseInterceptor { 17 18 private final String DEBUG_URL; 19 private final int DEBUG_RAW_ID; 20 21 public DebugInterceptor(String debugUrl, int rawId) { 22 this.DEBUG_URL = debugUrl; 23 this.DEBUG_RAW_ID = rawId; 24 } 25 26 private Response getResponse(Chain chain, String json) { 27 return new Response.Builder() 28 .code(200) 29 .addHeader("Content-Type", "application/json") 30 .body(ResponseBody.create(MediaType.parse("application/json"), json)) 31 .message("OK") 32 .request(chain.request()) 33 .protocol(Protocol.HTTP_1_1) 34 .build(); 35 } 36 37 //debug的封裝,根據(jù)rawId查詢獲取json; 38 private Response debugResponse(Chain chain, @RawRes int rawId) { 39 final String json = FileUtil.getRawFile(rawId); //根據(jù)rawId取出原始文件; 40 return getResponse(chain, json);//返回Response請求的響應(yīng); 41 } 42 43 /** 44 * 說明:此時(shí)存在的json文件是存在在單個應(yīng)用程序的res/raw文件夾下的json; 45 * @param chain 46 * @return 47 * @throws IOException 48 */ 49 @Override 50 public Response intercept(@NonNull Chain chain) throws IOException { 51 final String url = chain.request().url().toString(); //得到攔截的url; 52 if (url.contains(DEBUG_URL)) { //攔截的url包含了DEBUG_URL,返回存在的json文件; 53 return debugResponse(chain, DEBUG_RAW_ID); 54 } 55 return chain.proceed(chain.request()); //否則原樣返回?cái)?shù)據(jù); 56 } 57 }

?7.4 使用

【效果】就可以不適用服務(wù)器的數(shù)據(jù),直接可以在本地進(jìn)行json數(shù)據(jù)的加載和測試;

?

總結(jié)

以上是生活随笔為你收集整理的云炬Android开发笔记 5-9,10拦截器功能设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。