日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot项目整合Retrofit最佳实践,最优雅的HTTP客户端工具!

發布時間:2025/3/20 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot项目整合Retrofit最佳实践,最优雅的HTTP客户端工具! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方?好好學java?,選擇?星標?公眾號

重磅資訊、干貨,第一時間送達今日推薦:2020年7月程序員工資統計,平均14357元,又跌了,扎心個人原創100W+訪問量博客:點擊前往,查看更多

轉自:六點半起床,

鏈接:juejin.im/post/6854573211426750472

大家都知道 OKHttp 是一款由 Square?公司開源的 Java 版本 HTTP 客戶端工具。實際上,Square?公司還開源了基于 OKHttp?進一步封裝的 Retrofit?工具,用來支持通過接口的方式發起 HTTP?請求。如果你的項目中還在直接使用 RestTemplate 或者 OKHttp?,或者基于它們封裝的 HttpUtils,那么你可以嘗試使用 Retrofit。

retrofit-spring-boot-starter 實現了 Retrofit 與 spring-boot 框架快速整合,并且支持了部分功能增強,從而極大的簡化 spring-boot 項目下 HTTP?接口調用開發。接下來我們直接通過 retrofit-spring-boot-starter,來看看 spring-boot 項目發送 HTTP?請求有多簡單。

Retrofit 官方并沒有提供與 spring-boot 快速整合的 starter。retrofit-spring-boot-starter 是筆者封裝的,已在生產環境使用,非常穩定。造輪子不易,跪求各位大佬 star。

項目源碼:retrofit-spring-boot-starter

https://github.com/LianjiaTech/retrofit-spring-boot-starter

引入依賴

<dependency><groupId>com.github.lianjiatech</groupId><artifactId>retrofit-spring-boot-starter</artifactId><version>2.0.2</version> </dependency>

配置 @RetrofitScan 注解

你可以給帶有?@Configuration 的類配置 @RetrofitScan,或者直接配置到 spring-boot 的啟動類上。代碼如下:

@SpringBootApplication @RetrofitScan("com.github.lianjiatech.retrofit.spring.boot.test") public?class?RetrofitTestApplication?{public static void main(String[] args) {SpringApplication.run(RetrofitTestApplication.class, args);} }

定義http接口

接口必須使用 @RetrofitClient 注解標記!

@RetrofitClient(baseUrl = "${test.baseUrl}") public?interface?HttpApi?{@GET("person")Result<Person> getPerson(@Query("id") Long id); }

HTTP 相關注解可參考?Retrofit 官方文檔:https://square.github.io/retrofit/。

注入使用

將接口注入到其它 Service 中即可使用。

@Service public?class?TestService?{@Autowiredprivate?HttpApi?httpApi;public void test() {// 通過 httpApi 發起 HTTP 請求} }

只要通過上述幾個步驟,就能實現通過接口發送 HTTP 請求了,真的很簡單。如果你在 spring-boot 項目里面使用過 MyBatis,相信你對這種使用方式會更加熟悉。接下來我們繼續介紹一下 retrofit-spring-boot-starter 更高級一點的功能。

注解式攔截器

很多時候,我們希望某個接口下的某些 HTTP?請求執行統一的攔截處理邏輯。這個時候可以使用注解式攔截器。使用的步驟主要分為2步:

  • 繼承 BasePathMatchInterceptor 編寫攔截處理器;

  • 接口上使用 @Intercept 進行標注。

  • 下面以給指定請求的 URL 后面拼接 timestamp 時間戳為例,介紹下如何使用注解式攔截器。

    繼承 BasePathMatchInterceptor 編寫攔截處理器

    @Component public?class?TimeStampInterceptor?extends?BasePathMatchInterceptor?{@Overridepublic Response doIntercept(Chain chain) throws IOException {Request request = chain.request();HttpUrl url = request.url();long timestamp = System.currentTimeMillis();HttpUrl newUrl = url.newBuilder().addQueryParameter("timestamp", String.valueOf(timestamp)).build();Request newRequest = request.newBuilder().url(newUrl).build();return chain.proceed(newRequest);} }

    接口上使用 @Intercept 進行標注

    @RetrofitClient(baseUrl = "${test.baseUrl}") @Intercept(handler = TimeStampInterceptor.class, include = {"/api/**"}, exclude = "/api/test/savePerson") public?interface?HttpApi?{@GET("person")Result<Person>?getPerson(@Query("id")?Long?id);@POST("savePerson")Result<Person> savePerson(@Body Person person); }

    上面的 @Intercept 配置表示:攔截 HttpApi 接口下 /api/** 路徑下(排除 /api/test/savePerson)的請求,攔截處理器使用 TimeStampInterceptor。

    擴展注解式攔截器

    有的時候,我們需要在攔截注解動態傳入一些參數,然后再執行攔截的時候需要使用這個參數。這種時候,我們可以擴展實現自定義攔截注解。自定義攔截注解必須使用 @InterceptMark 標記,并且注解中必須包括 include()、exclude()、handler() 屬性信息。使用的步驟主要分為3步:

  • 自定義攔截注解;

  • 繼承 BasePathMatchInterceptor 編寫攔截處理器;

  • 接口上使用自定義攔截注解。

  • 例如我們需要在請求頭里面動態加入 accessKeyId、accessKeySecret 簽名信息才能正常發起 http 請求,這個時候可以自定義一個加簽攔截器注解 @Sign 來實現。下面以自定義 @Sign 攔截注解為例進行說明。

    自定義@Sign注解

    @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @InterceptMark public @interface Sign {/*** 密鑰 key* 支持占位符形式配置。** @return*/String accessKeyId();/*** 密鑰* 支持占位符形式配置。** @return*/String accessKeySecret();/*** 攔截器匹配路徑** @return*/String[] include() default {"/**"};/*** 攔截器排除匹配,排除指定路徑攔截** @return*/String[] exclude() default {};/*** 處理該注解的攔截器類*?優先從 Spring 容器獲取對應的 Bean,如果獲取不到,則使用反射創建一個!** @return*/Class<? extends BasePathMatchInterceptor> handler() default SignInterceptor.class; }

    擴展自定義攔截注解有以下2點需要注意:

  • 自定義攔截注解必須使用 @InterceptMark 標記;

  • 注解中必須包括 include()、exclude()、handler() 屬性信息。


  • 實現 SignInterceptor

    @Component public?class?SignInterceptor?extends?BasePathMatchInterceptor?{private?String?accessKeyId;private String accessKeySecret;public void setAccessKeyId(String accessKeyId) {this.accessKeyId = accessKeyId;}public void setAccessKeySecret(String accessKeySecret) {this.accessKeySecret = accessKeySecret;}@Overridepublic Response doIntercept(Chain chain) throws IOException {Request request = chain.request();Request newReq = request.newBuilder().addHeader("accessKeyId", accessKeyId).addHeader("accessKeySecret", accessKeySecret).build();return chain.proceed(newReq);} }

    上述 accessKeyId?和?accessKeySecret?字段值會依據?@Sign?注解的?accessKeyId()?和?accessKeySecret()?值自動注入。如果?@Sign?指定的是占位符形式的字符串,則會取配置屬性值進行注入。另外,accessKeyId?和?accessKeySecret?字段必須提供?setter?方法。

    接口上使用 @Sign

    @RetrofitClient(baseUrl = "${test.baseUrl}") @Sign(accessKeyId = "${test.accessKeyId}", accessKeySecret = "${test.accessKeySecret}", exclude = {"/api/test/person"}) public?interface?HttpApi?{@GET("person")Result<Person>?getPerson(@Query("id")?Long?id);@POST("savePerson")Result<Person> savePerson(@Body Person person); }

    連接池管理

    默認情況下,所有通過 Retrofit 發送的 HTTP 請求都會使用 max-idle-connections=5 keep-alive-second=300 的默認連接池。當然,我們也可以在配置文件中配置多個自定義的連接池,然后通過 @RetrofitClient 的 poolName 屬性來指定使用。比如我們要讓某個接口下的請求全部使用 poolName=test1 的連接池,代碼實現如下:

    1. 配置連接池。

    retrofit:# 連接池配置pool:test1:max-idle-connections: 3keep-alive-second: 100test2:max-idle-connections: 5keep-alive-second:?50

    2. 通過 @RetrofitClient 的 poolName 屬性來指定使用的連接池。

    @RetrofitClient(baseUrl = "${test.baseUrl}", poolName="test1") public?interface?HttpApi?{@GET("person")Result<Person> getPerson(@Query("id") Long id); }

    日志打印

    很多情況下,我們希望將 HTTP 請求日志記錄下來。通過 @RetrofitClient 的 logLevel 和 logStrategy 屬性,您可以指定每個接口的日志打印級別以及日志打印策略。

    retrofit-spring-boot-starter 支持了5種日志打印級別(ERROR、WARN、INFO、DEBUG、TRACE),默認 INFO。支持了4種日志打印策略(NONE、BASIC、HEADERS、BODY),默認 BASIC。4種日志打印策略含義如下:

  • NONE:無日志;

  • BASIC:Request 與 Response 日志;

  • HEADERS:Request 與 Response 日志,帶 HEADER;

  • BODY:Request 與 Response 日志,帶 HEADER 與 BODY(可選)。

  • retrofit-spring-boot-starter 默認使用了 DefaultLoggingInterceptor 執行真正的日志打印功能,其底層就是 OKHttp 原生的 HttpLoggingInterceptor。當然,你也可以自定義實現自己的日志打印攔截器,只需要繼承 BaseLoggingInterceptor(具體可以參考 DefaultLoggingInterceptor 的實現),然后在配置文件中進行相關配置即可。

    retrofit:# 日志打印攔截器logging-interceptor:?com.github.lianjiatech.retrofit.spring.boot.interceptor.DefaultLoggingInterceptor

    HTTP 異常信息格式化器

    當出現 HTTP 請求異常時,原始的異常信息可能閱讀起來并不友好,因此 retrofit-spring-boot-starter 提供了 HTTP?異常信息格式化器,用來美化輸出 HTTP?請求參數,默認使用 DefaultHttpExceptionMessageFormatter 進行請求數據格式化。你也可以進行自定義,只需要繼承 BaseHttpExceptionMessageFormatter,再進行相關配置即可。

    retrofit:# Http異常信息格式化器http-exception-message-formatter:?com.github.lianjiatech.retrofit.spring.boot.interceptor.DefaultHttpExceptionMessageFormatter

    調用適配器 CallAdapter

    Retrofit 可以通過調用適配器 CallAdapterFactory 將 Call<T> 對象適配成接口方法的返回值類型。retrofit-spring-boot-starter 擴展兩種 CallAdapterFactory 實現:

  • BodyCallAdapterFactory

    • 默認啟用,可通過配置 retrofit.enable-body-call-adapter=false 關閉;

    • 同步執行 HTTP?請求,將響應體內容適配成接口方法的返回值類型實例;

    • 除了 Retrofit.Call<T>、Retrofit.Response<T>、java.util.concurrent.CompletableFuture<T> 之外,其它返回類型都可以使用該適配器。

    • ResponseCallAdapterFactory

      • 默認啟用,可通過配置 retrofit.enable-response-call-adapter=false 關閉;

      • 同步執行 HTTP?請求,將響應體內容適配成 Retrofit.Response<T> 返回;

      • 如果方法的返回值類型為 Retrofit.Response<T>,則可以使用該適配器。

      Retrofit 自動根據方法返回值類型選用對應的?CallAdapterFactory?執行適配處理!加上?Retrofit 默認的?CallAdapterFactory,可支持多種形式的方法返回值類型:

      • Call<T>: 不執行適配處理,直接返回 Call<T> 對象;

      • CompletableFuture<T>: 將響應體內容適配成 CompletableFuture<T> 對象返回

      • Void: 不關注返回類型可以使用 Void。如果 HTTP?狀態碼不是2xx,直接報錯;

      • Response<T>: 將響應內容適配成 Response<T> 對象返回;

      • 其他任意 Java 類型:將響應體內容適配成一個對應的 Java 類型對象返回,如果 HTTP?狀態碼不是 2xx,直接報錯。

      /*** Call<T>* 不執行適配處理,直接返回 Call<T> 對象* @param id* @return*/ @GET("person") Call<Result<Person>> getPersonCall(@Query("id") Long id);/*** CompletableFuture<T>* 將響應體內容適配成 CompletableFuture<T> 對象返回* @param id* @return*/ @GET("person") CompletableFuture<Result<Person>> getPersonCompletableFuture(@Query("id") Long id);/*** Void* 不關注返回類型可以使用 Void。如果http狀態碼不是2xx,直接拋錯!* @param id* @return*/ @GET("person") Void getPersonVoid(@Query("id") Long id);/*** Response<T>* 將響應內容適配成Response<T>對象返回* @param id* @return*/ @GET("person") Response<Result<Person>> getPersonResponse(@Query("id") Long id);/*** 其他任意Java類型* 將響應體內容適配成一個對應的Java類型對象返回,如果http狀態碼不是2xx,直接拋錯!* @param id* @return*/ @GET("person")Result<Person>?getPerson(@Query("id")?Long?id);

      我們也可以通過繼承 CallAdapter.Factory 擴展實現自己的 CallAdapter;然后將自定義的 CallAdapterFactory 配置成 Spring 的 Bean!

      自定義配置的 CallAdapter.Factory 優先級更高!


      數據轉碼器 Converter

      Retrofit 使用 Converter 將 @Body 注解標注的對象轉換成請求體,將響應體數據轉換成一個 Java 對象,可以選用以下幾種 Converter:

      • Gson:com.squareup.Retrofit:converter-gson

      • Jackson:com.squareup.Retrofit:converter-jackson

      • Moshi:com.squareup.Retrofit:converter-moshi

      • Protobuf:com.squareup.Retrofit:converter-protobuf

      • Wire:com.squareup.Retrofit:converter-wire

      • Simple XML:com.squareup.Retrofit:converter-simplexml

      retrofit-spring-boot-starter 默認使用的是 Jackson 進行序列化轉換!如果需要使用其它序列化方式,在項目中引入對應的依賴,再把對應的 ConverterFactory 配置成 Spring 的 Bean 即可。

      我們也可以通過繼承 Converter.Factory 擴展實現自己的 Converter;然后將自定義的 Converter.Factory 配置成 Spring 的 Bean!

      自定義配置的 Converter.Factory 優先級更高!


      全局攔截器 BaseGlobalInterceptor

      如果我們需要對整個系統的的 HTTP?請求執行統一的攔截處理,可以自定義實現全局攔截器 BaseGlobalInterceptor, 并配置成 Spring 中的 Bean!例如我們需要在整個系統發起的 HTTP?請求,都帶上來源信息。

      @Component public class SourceInterceptor extends BaseGlobalInterceptor {@Overridepublic Response doIntercept(Chain chain) throws IOException {Request request = chain.request();Request newReq = request.newBuilder().addHeader("source", "test").build();return chain.proceed(newReq);} }

      結語

      至此,spring-boot 項目下最優雅的 HTTP?客戶端工具介紹就結束了,更多詳細信息可以參考官方文檔:Retrofit?以及?retrofit-spring-boot-starter。實現原理解讀可查看基于 Retrofit 實現自己的輕量級 HTTP?調用工具。

      最后,再附上我歷時三個月總結的?Java 面試 + Java 后端技術學習指南,筆者這幾年及春招的總結,github 1.4k star,拿去不謝!

      下載方式1.?首先掃描下方二維碼 2.?后臺回復「Java面試」即可獲取

    總結

    以上是生活随笔為你收集整理的Spring Boot项目整合Retrofit最佳实践,最优雅的HTTP客户端工具!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久96国产精品久久99软件 | 久久综合精品国产一区二区三区 | 色婷婷在线观看视频 | 久久这里只精品 | 日韩av中文在线观看 | 国产在线观看,日本 | 色窝资源 | 91精选在线观看 | av电影在线免费观看 | 国产亚洲精品成人av久久ww | 亚洲欧美日韩国产精品一区午夜 | 欧美精品一区二区三区一线天视频 | 伊人射 | 波多野结衣一区三区 | 成人在线免费观看网站 | 免费91麻豆精品国产自产在线观看 | 久久久久久久久综合 | 国产精品手机在线播放 | 深爱五月激情五月 | 91视频国产免费 | 99热超碰 | 日韩一区二区三区不卡 | 国产成在线观看免费视频 | 久久av影院 | 美女视频黄色免费 | .国产精品成人自产拍在线观看6 | 四虎成人精品在永久免费 | 99亚洲视频 | 国产精品刺激对白麻豆99 | 91精品国 | 最近日本中文字幕a | 日韩av一区二区三区四区 | 香蕉视频亚洲 | 色婷婷电影 | 国产女v资源在线观看 | 天天爽天天射 | 国内精品国产三级国产aⅴ久 | 一区二区三区四区五区在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 天天综合网天天综合色 | 在线日韩三级 | 一区二区三区四区免费视频 | 激情久久伊人 | 在线视频中文字幕一区 | 午夜三级福利 | 国产精品99久久久久久久久 | 国产精品毛片久久久久久久久久99999999 | 国产精品麻豆免费版 | 久久9999久久免费精品国产 | 美女视频黄免费的 | 日韩精品欧美精品 | 中文字幕一区av | av在线短片 | 99精品国产99久久久久久福利 | 亚洲精品国产第一综合99久久 | av成人在线播放 | 又黄又刺激又爽的视频 | 日本在线精品视频 | 欧美久久影院 | 欧美少妇18p | 久久理论电影 | 亚洲欧洲av | 亚洲日日日 | 超级碰视频 | 天天干天天在线 | 国产精品免费久久久久 | 2021久久 | 天堂激情网 | 免费日韩av片 | 日韩久久网站 | 欧美精彩视频在线观看 | 在线三级av | 欧美日韩在线网站 | 玖玖色在线观看 | 91九色在线观看视频 | 99国产精品久久久久老师 | 婷婷色在线资源 | 4438全国亚洲精品观看视频 | 欧美伦理电影一区二区 | 国产在线成人 | 色综合色综合久久综合频道88 | 91av资源在线 | 综合色站导航 | 久久99精品久久久久久久久久久久 | 精品国产免费人成在线观看 | 精品国产伦一区二区三区观看说明 | 综合激情网... | 日韩免费在线观看网站 | 亚洲丝袜一区 | 啪啪精品| av在线免费观看黄 | 国产成人免费观看 | 狠狠的操狠狠的干 | 在线观看av网站 | 久久久久久久久久久网 | 欧美精品一区二区性色 | 中文字幕视频一区二区 | 欧美另类69 | 色综合久久久网 | 综合网欧美 | 手机av观看 | 国产精品永久 | 国产高清在线精品 | 97人人看| av资源免费在线观看 | 亚洲精品国产欧美在线观看 | 在线成人免费电影 | 天天激情在线 | 久久成人一区 | 欧美激情综合色综合啪啪五月 | 91精品一区二区在线观看 | 欧美韩国日本在线 | 欧美韩日在线 | 热久久视久久精品18亚洲精品 | 黄色一级免费电影 | 中文字幕人成乱码在线观看 | 久草在线观 | 91精品国产99久久久久 | 国产精品久久99精品毛片三a | 在线视频区| 久久久久久久久久久久久久免费看 | 国产在线国产 | 天天爱天天干天天爽 | 女女av在线| 青青草在久久免费久久免费 | 九九久久电影 | 精品综合久久 | 国产一区二区播放 | 91精品国产99久久久久久红楼 | 中文字幕视频网站 | 午夜精品久久一牛影视 | 亚洲午夜精品久久久 | av在观看| 日本中文字幕视频 | 免费精品在线观看 | 国产流白浆高潮在线观看 | 国产精品尤物视频 | 黄网站www | 国产一级片直播 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 美女久久久久久久久久久 | 日本精品久久久久 | 午夜精品一区二区三区在线 | 免费黄色a网站 | 欧美电影黄色 | 成人免费观看视频大全 | 日本婷婷色 | 久久国产网站 | 日本黄色大片儿 | 深爱激情开心 | 蜜臀av夜夜澡人人爽人人桃色 | 麻豆国产网站入口 | 人人艹视频 | 国产无遮挡又黄又爽馒头漫画 | 西西www4444大胆在线 | 亚洲精品在线观看免费 | 免费观看十分钟 | 日本精品在线视频 | 日韩午夜大片 | 亚洲精品国产综合99久久夜夜嗨 | 91精品欧美一区二区三区 | 国产精选在线观看 | 成人三级网址 | 日韩在线免费高清视频 | 国产资源av| 欧美日韩高清一区二区 国产亚洲免费看 | 精品亚洲成人 | 天天超碰 | 欧美与欧洲交xxxx免费观看 | 国产精品k频道 | 亚洲精品h | 综合激情 | 亚洲精品一区二区在线观看 | 久久午夜视频 | 中文字幕乱码一区二区 | 热久久这里只有精品 | 欧美激情综合五月 | 91成人免费在线 | 国产精品久久久久9999 | 免费观看视频黄 | 久久婷婷五月综合色丁香 | 国产一级片视频 | 天天操天天操天天操 | 久久久综合电影 | 色偷偷人人澡久久超碰69 | 日本黄色片一区二区 | 久久久精品高清 | 国产成人一区二区三区免费看 | 草久在线观看视频 | 深夜成人av | 成人免费视频视频在线观看 免费 | 国产精品久久久久久久久久久久久 | 国产一区二区不卡在线 | 五月婷婷导航 | 欧美日韩亚洲在线观看 | 亚洲国产福利视频 | 激情久久久 | 99热精品久久| 日本午夜在线亚洲.国产 | 97视频人人澡人人爽 | 欧美色黄| 成人欧美一区二区三区黑人麻豆 | 91av手机在线 | 欧美日韩中文在线 | 国产精品 中文字幕 亚洲 欧美 | 亚洲理论在线观看电影 | 国产电影黄色av | 久艹在线免费观看 | 日韩高清av| 日韩一区二区三区免费视频 | 99精品视频在线观看免费 | 久久精品视频在线观看 | 激情网五月 | 在线国产一区二区三区 | 成人网在线免费视频 | 男女视频国产 | 国产精品一区二区免费在线观看 | 久久精品5 | 国产精品美女 | 99精品视频精品精品视频 | h动漫中文字幕 | 青青色影院 | 狠狠狠色 | 91精品久久久久久久久久久久久 | 久久五月婷婷综合 | av高清一区| 国产999久久久 | 看片一区二区三区 | 最近日韩免费视频 | 在线日本看片免费人成视久网 | 在线免费观看黄 | 中文字幕永久 | 伊人五月天 | 久久久免费| 久久艹中文字幕 | 在线成人高清电影 | 最近中文字幕 | 日韩电影黄色 | 国产精品中文久久久久久久 | va视频在线观看 | 亚洲精品www久久久久久 | 亚洲精品在线观看的 | 香蕉影视app | 国产高清免费视频 | 色老板在线| 国产黄免费在线观看 | www.色在线| 亚洲欧洲av| 激情综合六月 | 99精品久久久 | 91人人爽人人爽人人精88v | 久久免费视频网站 | 欧美影片 | 97精品国自产拍在线观看 | 中文字幕第一页在线播放 | 99国内精品久久久久久久 | 美国人与动物xxxx | www久久久久 | 国产精品第一页在线观看 | 91精品国产一区二区在线观看 | 天天草天天干天天 | 中文字幕区 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 在线观看视频99 | 狠狠躁天天躁综合网 | 午夜精品一区二区三区在线播放 | 欧美日韩国产一区二区在线观看 | 97人人澡人人添人人爽超碰 | 久草a视频| 欧美精品v国产精品v日韩精品 | 992tv在线成人免费观看 | 粉嫩av一区二区三区四区在线观看 | 日本久久久久 | av一级免费| 成年人在线看片 | 韩日电影在线 | 最近久乱中文字幕 | 男女视频久久久 | 久久视频二区 | 免费观看的黄色 | 四虎4hu永久免费 | 青青久视频 | av在线影片 | 91精品国产欧美一区二区 | 亚洲劲爆av| 在线精品视频免费播放 | 久久久久久久久久久国产精品 | 亚洲国产精品成人va在线观看 | av888av.com| 国产小视频在线观看 | 天天操婷婷 | 亚洲六月丁香色婷婷综合久久 | 日本美女xx| 国产精品视频资源 | 国产在线观看,日本 | 色综合久久精品 | 天天干天天做 | 国产三级视频 | 日本精品久久久一区二区三区 | 91精品播放| 亚洲精品乱码久久久久v最新版 | 久久黄色a级片 | 欧美激情精品久久久久久变态 | 精品日韩在线一区 | 不卡的av在线播放 | 毛片网在线播放 | 激情视频在线观看网址 | 国产亚洲精品日韩在线tv黄 | 日韩免费看片 | 国产视频二区三区 | 天天做日日做天天爽视频免费 | 久久在线免费 | 中文在线a√在线 | 2021国产在线 | 日本xxxx裸体xxxx17 | 久久久久成人精品亚洲国产 | 国产精品a久久 | 干狠狠 | 天天插天天爽 | 亚洲视频一 | 91亚洲精品在线观看 | 欧美久久99 | 成人av亚洲 | 日本中文一级片 | 韩日精品中文字幕 | 天天干天天干天天干天天干天天干天天干 | 黄色小网站在线观看 | 国产综合视频在线观看 | 国产一卡二卡在线 | 香蕉视频在线观看免费 | 不卡国产视频 | 一区二区中文字幕在线 | 亚洲成人中文在线 | 午夜视频二区 | 久草亚洲视频 | 美女免费网站 | 激情婷婷在线观看 | 国产精品久久久久毛片大屁完整版 | 在线v片免费观看视频 | 久久久电影网站 | 97超碰香蕉 | 色瓜| 超碰在线亚洲 | 很污的网站 | 9999免费视频 | 天天摸夜夜操 | 亚洲国产日韩在线 | 91av在线播放 | 成人在线一区二区三区 | 久久久久 免费视频 | 五月的婷婷 | 国产又粗又猛又黄又爽 | 久久久久一区二区三区四区 | 久久99精品久久久久久秒播蜜臀 | 国产无限资源在线观看 | 首页国产精品 | 亚洲成人动漫在线观看 | 欧美国产精品久久久久久免费 | 日本精品中文字幕 | 91精品视频免费在线观看 | 在线视频欧美亚洲 | 麻花豆传媒mv在线观看 | 欧美激情精品久久久久 | 亚洲一区二区精品3399 | 国产精品永久在线 | 精品一区二区精品 | 色国产在线 | 国产成人一级电影 | 五月天久久久 | 久草视频99| 麻豆高清免费国产一区 | 欧美日韩一区二区三区在线免费观看 | 91精品国产九九九久久久亚洲 | 五月精品| 亚洲乱码久久久 | 免费视频一区二区 | av在线看网站 | 骄小bbw搡bbbb揉bbbb | 欧美粗又大 | 免费看污的网站 | 91在线精品视频 | 国产视频色| 亚洲一区二区精品视频 | 中文字幕在线一区二区三区 | 亚洲午夜久久久久久久久电影网 | 久久人人爽视频 | 精品国产中文字幕 | 欧美黑人性爽 | 日夜夜精品视频 | 免费网站在线观看成人 | 亚洲三级网站 | 免费看短 | 综合久久婷婷 | 九九视频在线观看视频6 | 亚洲精品中文字幕视频 | 九九热久久久 | 在线播放 日韩专区 | a'aaa级片在线观看 | 精品伦理一区二区三区 | 四虎影视成人精品 | 丁香婷婷激情五月 | 国外成人在线视频网站 | 国产美女精品视频免费观看 | 韩日精品中文字幕 | 99综合久久| 99精品在线视频播放 | 中文乱码视频在线观看 | 日韩中字在线观看 | 久久久精品电影 | 四虎成人av | 人人澡人人草 | 国产精品免费观看视频 | 色综合网在线 | 日日婷婷夜日日天干 | 日本不卡123区 | 国产一区二区中文字幕 | 欧美在线日韩在线 | 免费看黄色小说的网站 | 欧美色精品天天在线观看视频 | 国产又黄又硬又爽 | av日韩不卡| 在线观看亚洲精品 | 日韩av电影一区 | 亚洲精品在线电影 | 91porny九色在线播放 | 黄色成人小视频 | www.色婷婷| 亚洲成人午夜av | av在线免费不卡 | 激情视频免费观看 | 爱爱一区 | 香蕉手机在线 | 9999免费视频| 97香蕉久久国产在线观看 | 激情欧美一区二区三区 | 在线观看你懂的网址 | 亚洲黄色免费 | 国产日韩在线观看一区 | 日韩黄色影院 | 日韩av成人| 在线看片a| 西西人体www444| www成人av| 正在播放亚洲精品 | 久久久免费在线观看 | 1000部国产精品成人观看 | 国产在线第三页 | 国产精品黑丝在线观看 | 操操操人人 | 狠狠干在线 | 国产精品久久久久久爽爽爽 | 国产亚洲精品xxoo | 免费国产ww| 亚洲乱码国产乱码精品天美传媒 | 免费a级毛片在线看 | 亚洲精品视频免费在线观看 | 在线观看av不卡 | 色在线中文字幕 | 久艹视频在线观看 | 2021国产在线视频 | 91视频久久 | 日韩深夜在线观看 | 在线观看国产区 | 999国内精品永久免费视频 | 99性视频 | 日韩在线免费视频观看 | 天天干夜夜想 | 亚洲资源视频 | 天天av在线播放 | 射射射av | 999精品网| 精品久久一 | 久久久久久久久毛片精品 | 日韩高清在线一区二区 | 97精品一区二区三区 | 欧美一区二区在线 | 亚洲午夜精品一区二区三区电影院 | 久久男女视频 | 人人爽网站 | 亚洲精品乱码久久久久久蜜桃欧美 | 久久天天躁狠狠躁夜夜不卡公司 | 伊人手机在线 | 国产精品毛片久久久久久 | 国产在线观看网站 | 欧美精品在线视频观看 | 亚洲成色777777在线观看影院 | 亚洲综合色视频在线观看 | 草樱av | 亚洲成aⅴ人片久久青草影院 | 欧美久久电影 | 国内精品在线观看视频 | 婷婷丁香激情网 | 夜夜躁狠狠躁日日躁 | 日韩毛片在线一区二区毛片 | 在线免费观看羞羞视频 | 免费观看成人av | 国产专区第一页 | 日本中文字幕在线一区 | 一区二区三区国产欧美 | 日韩免费在线观看视频 | 中文字幕在线精品 | 成人啊 v | 成年人三级网站 | 98涩涩国产露脸精品国产网 | 免费高清无人区完整版 | 在线播放你懂 | 欧美日韩在线免费观看 | 99热在线国产 | 色在线视频 | 日韩专区在线播放 | 亚洲精品456在线播放乱码 | 高清在线一区二区 | 在线观看网站黄 | 碰超在线97人人 | 国产精品专区在线 | 在线免费黄色av | 国产精品毛片久久久久久久 | 久久狠狠亚洲综合 | 在线 成人| 91.精品高清在线观看 | 欧美成人精品欧美一级乱 | 久久高清国产 | 婷婷综合影院 | 99热在线精品观看 | 日韩免费看片 | 91看片成人| 国产91在线 | 美洲 | 九九热av| 欧美一级黄色片 | 国产一区二区在线播放 | 最近中文字幕免费av | 久久99国产精品 | 亚洲九九九在线观看 | 日韩欧美一区二区在线播放 | 五月天av在线 | 在线а√天堂中文官网 | 日韩在线观看一区二区三区 | 婷婷伊人五月天 | 五月花婷婷 | 中文字幕一区二 | 婷婷久久一区二区三区 | 超碰日韩 | 麻豆视频免费在线播放 | 国产又粗又猛又爽 | 97超碰人人干 | 日韩午夜av| 91精品办公室少妇高潮对白 | 又黄又爽的免费高潮视频 | 91桃色在线播放 | 男女靠逼app | 91九色视频观看 | 国产精品九九视频 | 日韩在线精品视频 | 亚洲人视频在线 | 狠狠色丁香久久婷婷综合丁香 | 色天天久久 | 婷婷久久一区二区三区 | 欧美日韩精品国产 | 超碰97国产精品人人cao | a视频在线观看免费 | 欧美大香线蕉线伊人久久 | av中文字幕在线播放 | 97超碰在线免费观看 | 激情久久伊人 | 国产成视频在线观看 | 综合精品在线 | 久久久久福利视频 | 99精品在线播放 | 国产不卡片 | 在线观看免费视频 | 久久综合色天天久久综合图片 | 欧美日韩免费一区 | 日韩欧美网址 | 一区二区三区四区五区在线视频 | 日日摸日日爽 | 成人午夜网址 | 99热最新地址 | 天天av天天 | 免费在线观看午夜视频 | 91香蕉视频在线 | 国产色婷婷精品综合在线手机播放 | 久久国产香蕉视频 | 黄色片网站av | 高清免费在线视频 | 五月婷婷一级片 | 在线视频成人 | 精品久久久久一区二区国产 | 在线视频18在线视频4k | 伊人亚洲综合网 | 成人av影视在线 | 视频在线一区 | 欧美激情精品久久久久久 | 人人爽人人爽av | 久久高清片 | 国产免费一区二区三区最新 | 国产麻豆剧传媒免费观看 | 中文字幕高清视频 | 久久精品香蕉视频 | 日韩三区在线 | 久久久久国产成人免费精品免费 | 日韩精品一区二区三区丰满 | 日韩激情小视频 | 91资源在线观看 | 精品国产_亚洲人成在线 | 成人黄色电影在线观看 | 91在线亚洲 | 手机av在线网站 | 日韩字幕在线观看 | 在线99视频| 国产精品综合久久久久 | 婷婷五综合 | 日韩一区二区三区不卡 | 日韩视频三区 | 99久久久久久久 | 日韩资源在线观看 | 国产精品影音先锋 | 在线看国产一区 | 久久久久成 | 一区二区三区日韩视频在线观看 | 五月婷婷影院 | 日韩在线视频看看 | 日韩欧美在线不卡 | 免费av网址在线观看 | 五月色综合 | 久久精品亚洲 | 亚洲3级 | 国产日韩视频在线 | 欧美在线视频a | 久久tv| 黄色毛片一级片 | 成人影片免费 | 日本精品久久久一区二区三区 | 99久久er热在这里只有精品15 | 综合久久久久久久久 | 欧美日韩亚洲第一页 | 精品无人国产偷自产在线 | 亚洲成av人片一区二区梦乃 | 一级理论片在线观看 | 在线播放一区 | 国产精品免费观看在线 | 在线视频欧美亚洲 | 在线看毛片网站 | 欧美日韩免费一区二区 | 99一区二区三区 | 免费三级a | 欧美久久成人 | 91视频成人免费 | 成人观看 | 波多野结衣在线观看一区二区三区 | 一区二三国产 | 欧美a级片网站 | 日韩伦理片一区二区三区 | 免费成人黄色av | 97超碰人人网| 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 九九交易行官网 | 中文字幕一区三区 | 久草在线手机观看 | 国产精品福利久久久 | 欧美美女视频在线观看 | 免费亚洲视频在线观看 | 国产亚洲婷婷免费 | 久久综合免费视频 | 国产精品永久在线观看 | 精品一区二区精品 | 三日本三级少妇三级99 | 夜夜视频| 六月丁香婷| 久久视频在线看 | 精品国产自 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91九色综合| 天天草天天干天天射 | 亚洲综合在 | 天天操操 | av在线短片 | 成年免费在线视频 | 天天做日日爱夜夜爽 | 亚洲做受高潮欧美裸体 | 亚洲理论影院 | 91资源在线| 日韩av在线小说 | 91免费观看视频网站 | 91精品久久久久久 | 亚洲视频2 | 国产一级免费片 | 欧美激精品 | 色婷婷婷 | 天天做天天爱夜夜爽 | 久久久www成人免费精品 | 国产精品第 | 黄色精品一区 | 亚洲在线网址 | 婷婷干五月 | 亚洲国产精品99久久久久久久久 | 日韩极品视频在线观看 | 久久成人精品 | 欧美一级电影免费观看 | 国产理论在线 | 日韩久久在线 | 中文字幕免费国产精品 | 久久久久久久久久久高潮一区二区 | 97免费公开视频 | 色综合久久88色综合天天人守婷 | av观看免费在线 | 成人网色| 奇米7777狠狠狠琪琪视频 | 亚洲一一在线 | 美女免费视频一区二区 | 成年人网站免费观看 | 97色视频在线 | 亚洲欧美一区二区三区孕妇写真 | 草久草久 | 色视频在线看 | 日韩av手机在线观看 | 97精品在线 | 九九热re| 黄色亚洲免费 | 99色亚洲 | 成人影视免费 | 超碰激情在线 | www.一区二区三区 | av解说在线观看 | 在线黄色免费av | 欧美另类性 | 亚洲天堂网视频在线观看 | 麻豆你懂的 | 成年人视频免费在线播放 | 中文字幕在线免费播放 | 国产精品观看在线亚洲人成网 | h网站免费在线观看 | 国产成人精品亚洲日本在线观看 | 91精品视屏 | 亚洲天天摸日日摸天天欢 | 美女黄频视频大全 | 国产免费区 | 精品高清美女精品国产区 | 日日射av | 久久99热这里只有精品国产 | 成人资源在线播放 | 99热在线观看 | 黄色视屏免费在线观看 | 日韩高清免费观看 | 区一区二区三区中文字幕 | 成人在线视频免费观看 | 亚洲最新视频在线播放 | 免费能看的黄色片 | 久久五月婷婷综合 | а中文在线天堂 | 91丝袜美腿| 婷婷丁香自拍 | 亚洲精品国产自产拍在线观看 | 亚洲综合小说电影qvod | 免费观看一级成人毛片 | 成人a大片 | 国产精品久久久久影院日本 | 五月激情综合婷婷 | 久热免费在线观看 | 激情综合亚洲精品 | 日韩国产精品久久久久久亚洲 | 欧美日韩高清一区二区 国产亚洲免费看 | 偷拍区另类综合在线 | 男女日麻批 | 日日干精品| 色狠狠一区二区 | 日韩精品最新在线观看 | 中文在线a在线 | 成人亚洲精品国产www | 久久免费电影网 | 国产精品视频全国免费观看 | 操操操干干干 | 天天爱天天操 | 不卡av在线播放 | 九九久久电影 | 不卡电影免费在线播放一区 | 国产精品久久久久久久妇 | 亚洲国内精品在线 | 911精品美国片911久久久 | av电影在线免费观看 | 五月天久久久久 | 黄色精品久久 | av电影一区二区三区 | 蜜臀av夜夜澡人人爽人人桃色 | 久久视频国产精品免费视频在线 | 日韩免费b | 久久久久久美女 | 99免费看片 | 69国产盗摄一区二区三区五区 | 久久久久久久福利 | 超碰电影在线观看 | 精品一区二区免费视频 | 超碰在97| 伊人久久国产精品 | 欧美一区二区免费在线观看 | 国产精品综合在线 | 国产美女被啪进深处喷白浆视频 | 色九色| 天天操天天操天天操天天操天天操天天操 | 久草视频在线资源站 | 精品国产伦一区二区三区 | 欧美日韩在线播放 | 亚洲乱码精品久久久久 | 中文字幕a∨在线乱码免费看 | 91在线播放视频 | 国产一级淫片免费看 | 国产精品久久久久久久久免费 | 福利视频精品 | 日韩欧美aaa | 奇米7777狠狠狠琪琪视频 | 婷婷色网视频在线播放 | www五月天| 一级特黄av | 精品国偷自产在线 | 亚洲激精日韩激精欧美精品 | 欧美日韩久久久 | 一级片免费观看视频 | 中文字幕免费久久 | av久久在线 | 国产精品 久久 | 国产91亚洲| 国产999视频 | 久草视频观看 | 99久久精品免费一区 | av中文在线 | 日本午夜在线亚洲.国产 | 香蕉久久久久久久 | 精品国产免费观看 | 国产不卡毛片 | 顶级欧美色妇4khd | 深夜免费小视频 | 久久公开视频 | 99视频播放 | 久久曰视频| 91精品久久久久久久久久入口 | 日批视频在线观看免费 | 久久一级片 | 亚洲一级黄色av | 欧美伦理一区 | 免费观看的黄色片 | 亚洲国产精选 | 国产69久久久 | 国产一区二区在线播放视频 | 免费在线激情视频 | 免费在线成人av电影 | 97精品久久人人爽人人爽 | 国产女做a爱免费视频 | 天天操天天玩 | 999成人网 | 黄在线 | 日本大片免费观看在线 | 中文免费 | 天堂av在线7 | 精品福利在线观看 | 亚洲精品视频免费在线 | 亚洲一区二区三区毛片 | 色之综合网 | 久久狠狠亚洲综合 | 91精彩视频在线观看 | 免费黄色a网站 | 久久不见久久见免费影院 | 国产黄色大片免费看 | 国产一区二区三区四区大秀 | 男女拍拍免费视频 | 国产999精品久久久久久绿帽 | 天天干天天做天天爱 | 视频 国产区 | 国产精品一区二区精品视频免费看 | 天天天天天天天操 | 97精品国产一二三产区 | 99热精品久久 | 麻豆传媒视频在线播放 | 天天草天天干天天射 | 亚洲国产精品激情在线观看 | 国内少妇自拍视频一区 | 天天搞天天干 | 97香蕉视频 | 日韩电影一区二区三区 | 超碰国产在线观看 | 永久免费看av | 久艹视频在线免费观看 | 欧美日韩国产一区二区三区在线观看 | www国产亚洲精品久久麻豆 | 97精品国产97久久久久久 | 精品久久久精品 | 1区2区视频 | 97成人资源站 | 婷婷六月综合亚洲 | www.狠狠| 日韩在线观看精品 | 国产在线播放一区二区三区 | 亚洲精品国产精品国 | 在线观看免费 | 成人宗合网| 99精品久久只有精品 | 久久精品视频4 | 综合网在线视频 | 国产在线a免费观看 | 久久色视频 | 精品久久久久久国产 | 五月婷婷视频 | 午夜视频免费播放 | 欧美久久影院 | 婷婷伊人综合亚洲综合网 | 国产精品乱码一区二三区 | 国产在线毛片 | 免费av福利| 婷婷丁香色 | 日韩精品一区二区三区高清免费 | 天堂中文在线视频 | 91.精品高清在线观看 | www五月天com | 国产乱对白刺激视频在线观看女王 | 久久久免费 | av一级免费 | 国产精品成人久久久久久久 | 在线观看av麻豆 | 久久草网 | 亚洲经典视频在线观看 | 日本久久久久 | 中文字幕中文字幕在线一区 | 国产成人精品综合久久久 | 免费在线观看成人av | 国产一区二区三区在线 | 日韩综合视频在线观看 | 久久精品5 | 国产成人一区二区三区电影 | 日韩字幕在线 | 黄色小网站在线 | av日韩中文| 欧美日韩精品在线播放 | 成年人在线观看免费视频 | 一区二区三区高清在线观看 | 国产精品99精品久久免费 | 久爱综合| 三级性生活视频 | 久久少妇av| 丁香激情综合 | 国产毛片久久久 | 欧美色图东方 | 欧美精品久久人人躁人人爽 | 成人h动漫精品一区二 | 97视频在线观看播放 | 久久字幕| 亚洲成人精品国产 | 欧美日韩免费观看一区二区三区 | 在线视频 国产 日韩 | 国产一线在线 | 欧美一区二区三区特黄 | 国产一区二区在线免费播放 | 国产97在线视频 | 午夜国产一区二区三区四区 | 免费久久精品视频 | 国产精品免费av | 日韩激情在线 | 狠狠色网| 欧美一级电影 | 久久影院午夜论 | 婷婷在线综合 | 欧美一性一交一乱 | 欧美日韩a视频 | 亚洲狠狠| 热久久国产精品 | 人人干在线 | 视频 天天草 | 国产在线国偷精品产拍 | 乱男乱女www7788 | 最近中文字幕在线中文高清版 | 美女国内精品自产拍在线播放 | 六月色播 | 国内小视频在线观看 | 国产一区二区三区免费在线 | 99精品欧美一区二区三区黑人哦 | 少妇bbbb揉bbbb日本 | 黄色三级在线看 | 六月丁香综合网 | 在线视频精品 | 亚洲精品国产精品乱码不99热 | 波多野结衣一区二区三区中文字幕 | 9在线观看免费高清完整版在线观看明 | 爱情影院aqdy鲁丝片二区 | 亚洲欧美成人网 | 久久99中文字幕 | 免费看三片 | 亚洲视频网站在线观看 | 国产区 在线| 精品一区二区三区四区在线 | 超碰av在线免费观看 | 亚洲日本三级 | 美女久久久久 | 狠狠干,狠狠操 | 久草亚洲视频 | 六月丁香婷婷久久 | 国产精品一区二区三区免费视频 | 国产一二三精品 | 亚洲欧美国内爽妇网 | 色综合久久久久 | 亚洲一本视频 | 亚洲精品国产精品国自 |