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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA——Okhttp封装工具类

發(fā)布時(shí)間:2024/10/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA——Okhttp封装工具类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基本概念

OKhttp:一個(gè)處理網(wǎng)絡(luò)請(qǐng)求的開(kāi)源項(xiàng)目,是安卓端最火熱的輕量級(jí)框架。?

Maven

<!--OK HTTP Client--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.8.1</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.9</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.9</version></dependency><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version></dependency>

解決方案?

HttpClient類(lèi)?

package io.shentuzhigang.demo.http.okhttp3;import io.shentuzhigang.demo.http.okhttp3.config.HttpClientConfig; import okhttp3.*;import javax.net.ssl.*; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.concurrent.TimeUnit;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-08-25 15:32*/ public class HttpClient {/*** 原始OkHttpClient,全局保持唯一一個(gè),從而保證性能開(kāi)銷(xiāo)*/private OkHttpClient mOkHttpClient = null;/*** httpClient的配置選項(xiàng) {@link HttpClientConfig}*/private HttpClientConfig config;/*** 構(gòu)造方法*/public HttpClient() {this(new HttpClientConfig());}/*** 構(gòu)造方法** @param config {@link HttpClientConfig}*/public HttpClient(HttpClientConfig config) {if (config == null) {config = new HttpClientConfig();}this.setConfig(config);}public void setConfig(HttpClientConfig config) {if (config == null) {return;}this.config = config;resetHttpClient();}public HttpClientConfig getConfig() {return config;}/*** 重新配置HttpClient**/public synchronized void resetHttpClient() {OkHttpClient.Builder builder = new OkHttpClient.Builder()//設(shè)置超時(shí)連接時(shí)間.connectTimeout(config.getTimeoutConnect(), TimeUnit.MILLISECONDS)//設(shè)置寫(xiě)入超時(shí)時(shí)間.writeTimeout(config.getTimeoutWrite(), TimeUnit.MILLISECONDS)//設(shè)置讀取超市時(shí)間.readTimeout(config.getTimeoutRead(), TimeUnit.MILLISECONDS)//連接池.connectionPool(new ConnectionPool(config.getMaxIdleConnections(),config.getKeepAliveDuration(),config.getKeepAliveTimeUnit()));if (config.getInterceptors() != null) {for (Interceptor interceptor : config.getInterceptors()) {if (interceptor == null) {continue;}builder.addInterceptor(interceptor);}}if (config.getNetworkInterceptors() != null) {for (Interceptor interceptor : config.getNetworkInterceptors()) {if (interceptor == null) {continue;}builder.addNetworkInterceptor(interceptor);}}if (config.getExecutorService() != null) {builder.dispatcher(new Dispatcher(config.getExecutorService()));}TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}}};//支持HTTPS請(qǐng)求,跳過(guò)證書(shū)驗(yàn)證builder.sslSocketFactory(createSSLSocketFactory(trustAllCerts), (X509TrustManager) trustAllCerts[0]);builder.hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String s, SSLSession sslSession) {return true;}});mOkHttpClient = builder.build();}/*** 生成安全套接字工廠,用于https請(qǐng)求的證書(shū)跳過(guò)** @return SSLSocketFactory*/private SSLSocketFactory createSSLSocketFactory(TrustManager[] trustManagers) {SSLSocketFactory ssfFactory = null;try {//"SSLv2Hello", "SSLv3", "TLSv1"SSLContext sslContext = SSLContext.getInstance("TLSv1.2");sslContext.init(null, trustManagers, new SecureRandom());ssfFactory = sslContext.getSocketFactory();} catch (Exception e) {}return ssfFactory;}public synchronized OkHttpClient getOkHttpClient() {return mOkHttpClient;}public synchronized Call newCall(Request request){return mOkHttpClient.newCall(request);} }

HttpClient配置類(lèi)?

package io.shentuzhigang.demo.http.okhttp3.config;import io.shentuzhigang.demo.http.okhttp3.interceptor.LogInterceptor; import okhttp3.Interceptor;import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-08-25 16:49*/ public class HttpClientConfig {public static final long DEFAULT_CONNECT_TIMEOUT = 10 * 1000;public static final long DEFAULT_WRITE_TIMEOUT = 30 * 1000;public static final long DEFAULT_READ_TIMEOUT = 30 * 1000;/*** 默認(rèn)okhttp最大空閑連接數(shù)(5)*/public static final int DEFAULT_MAX_IDLE_CONNECTIONS = 5;/*** 默認(rèn)okhttp活動(dòng)鏈接存貨時(shí)間(5分鐘)*/public static final long DEFAULT_KEEP_ALIVE_DURATION_MINUTES = 5;/*** 默認(rèn)okhttp活動(dòng)鏈接存貨時(shí)間單位, (分鐘)*/public static final TimeUnit DEFAULT_KEEP_ALIVE_DURATION_TIME_UNIT = TimeUnit.MINUTES;private long timeoutConnect;private long timeoutRead;private long timeoutWrite;private int maxIdleConnections;private long keepAliveDuration;private TimeUnit keepAliveTimeUnit;private List<Interceptor> interceptors;private List<Interceptor> networkInterceptors;private ExecutorService executorService;public HttpClientConfig() {this(DEFAULT_MAX_IDLE_CONNECTIONS, DEFAULT_KEEP_ALIVE_DURATION_MINUTES, DEFAULT_KEEP_ALIVE_DURATION_TIME_UNIT);}public HttpClientConfig(int maxIdleConnections, long keepAliveDuration, TimeUnit keepAliveTimeUnit) {this.maxIdleConnections = maxIdleConnections;this.keepAliveDuration = keepAliveDuration;this.keepAliveTimeUnit = keepAliveTimeUnit;this.timeoutConnect = DEFAULT_CONNECT_TIMEOUT;this.timeoutRead = DEFAULT_READ_TIMEOUT;this.timeoutWrite = DEFAULT_WRITE_TIMEOUT;this.interceptors = new ArrayList<>();this.interceptors.add(new LogInterceptor());}public HttpClientConfig setInterceptors(List<Interceptor> interceptors) {this.interceptors = interceptors;return this;}public HttpClientConfig addInterceptor(Interceptor interceptor) {if (interceptor == null){return this;}if (this.interceptors == null){this.interceptors = new ArrayList<>();}this.interceptors.add(interceptor);return this;}public HttpClientConfig setNetworkInterceptors(List<Interceptor> networkInterceptors) {this.networkInterceptors = networkInterceptors;return this;}public HttpClientConfig addNetInterceptor(Interceptor interceptor) {if (interceptor == null){return this;}if (this.networkInterceptors == null) {this.networkInterceptors = new ArrayList<>();}this.networkInterceptors.add(interceptor);return this;}public HttpClientConfig setMaxIdleConnections(int maxIdleConnections) {this.maxIdleConnections = maxIdleConnections;return this;}public HttpClientConfig setKeepAliveDuration(long keepAliveDuration) {this.keepAliveDuration = keepAliveDuration;return this;}public HttpClientConfig setKeepAliveTimeUnit(TimeUnit keepAliveTimeUnit) {this.keepAliveTimeUnit = keepAliveTimeUnit;return this;}public HttpClientConfig setExecutorService(ExecutorService executorService) {this.executorService = executorService;return this;}public HttpClientConfig setTimeout(long timeoutConnect, long timeoutRead, long timeoutWrite) {this.timeoutConnect = timeoutConnect;this.timeoutRead = timeoutRead;this.timeoutWrite = timeoutWrite;return this;}public long getTimeoutConnect() {return timeoutConnect;}public long getTimeoutRead() {return timeoutRead;}public long getTimeoutWrite() {return timeoutWrite;}public ExecutorService getExecutorService() {return executorService;}public int getMaxIdleConnections() {return maxIdleConnections;}public long getKeepAliveDuration() {return keepAliveDuration;}public TimeUnit getKeepAliveTimeUnit() {return keepAliveTimeUnit;}public List<Interceptor> getInterceptors() {return interceptors;}public List<Interceptor> getNetworkInterceptors() {return networkInterceptors;} }

日志攔截器?

package io.shentuzhigang.demo.http.okhttp3.interceptor;import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import okio.Buffer; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.IOException; import java.util.concurrent.TimeUnit;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-08-25 15:33*/ public class LogInterceptor implements Interceptor {private static Logger log = LoggerFactory.getLogger(LogInterceptor.class);private String TAG = getClass().getSimpleName();@NotNull@Overridepublic Response intercept(@NotNull Chain chain) throws IOException {//獲得請(qǐng)求信息,此處如有需要可以添加headers信息Request request = chain.request();log.trace(TAG, "[request]:" + request.toString());log.trace(TAG, "[request-headers]:" + request.headers().toString());/* 記錄請(qǐng)求耗時(shí) */long startNs = System.nanoTime();/* 發(fā)送請(qǐng)求,獲得響應(yīng) */Response response = chain.proceed(request);long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs);/* 打印請(qǐng)求耗時(shí) */log.debug(TAG, "[耗時(shí)]:" + tookMs + "ms");/* 使用response獲得headers(),可以更新本地Cookie。*/log.trace(TAG, "[response-code]:" + response.code());log.trace(TAG, "[response-headers]:" + response.headers().toString());return response;}private String readRequestBody(Request oriReq) {if (oriReq.body() == null){return "";}Request request = oriReq.newBuilder().build();Buffer buffer = new Buffer();try {request.body().writeTo(buffer);return buffer.readUtf8();} catch (IOException e) {e.printStackTrace();}return "";} }

OkHTTP封裝工具類(lèi)

package io.shentuzhigang.demo.http.okhttp3.util;import com.alibaba.fastjson.JSON; import io.shentuzhigang.demo.http.okhttp3.ContentType; import io.shentuzhigang.demo.http.okhttp3.HttpClient; import okhttp3.*; import org.apache.commons.collections4.MapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.IOException; import java.nio.charset.Charset; import java.util.Map; import java.util.Set;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-09-25 20:02*/ public class HttpRequestUtil {private static Logger logger = LoggerFactory.getLogger(HttpRequestUtil.class);private static String ENCODING = "UTF-8";private HttpClient httpClient = new HttpClient();public final static HttpRequestUtil INSTANCE;private static final String CONTENT_TYPE = "Content-Type";//單例模式static {INSTANCE = new HttpRequestUtil();}//構(gòu)造器私有化,防止new對(duì)象private HttpRequestUtil(){}public static HttpRequestUtil getInstance(){return INSTANCE;}/*** Set URI* @param url* @param params*/private HttpUrl getHttpUrl(String url,Map<String, String> params) {HttpUrl.Builder newBuilder = HttpUrl.parse(url).newBuilder();if (MapUtils.isNotEmpty(params)) {// Set paramsfor (Map.Entry<String, String> stringStringEntry : params.entrySet()) {newBuilder.addQueryParameter(stringStringEntry.getKey(), stringStringEntry.getValue());}}return newBuilder.build();}/*** Set Header* @param headers 請(qǐng)求頭數(shù)據(jù)*/private Headers getHeaders(Map<String, String> headers){if(MapUtils.isNotEmpty(headers)){return Headers.of(headers);}return new Headers.Builder().build();}/*** Content-Type: application/x-www-from-urlencoded** Description: 封裝請(qǐng)求參數(shù)* @param params 參數(shù)**/private FormBody getFormBody(Map<String, String> params) {FormBody.Builder formBodyBuilder = new FormBody.Builder(Charset.forName(ENCODING));// 封裝請(qǐng)求參數(shù)if (MapUtils.isNotEmpty(params)) {Set<Map.Entry<String, String>> entrySet = params.entrySet();for (Map.Entry<String, String> entry : entrySet) {formBodyBuilder.add(entry.getKey(), entry.getValue());}}return formBodyBuilder.build();}/*** Content-Type: multipart/form-data** Description: 封裝請(qǐng)求參數(shù)* @return*/private MultipartBody getMultipartBody(Map<String, Object> params){MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder();return multipartBodyBuilder.build();}/***** @param content* @param type* @return*/private RequestBody getRawBody(String content,MediaType type){return RequestBody.create(content,type);}/*** Content-Type: application/json** @param json* @return*/private RequestBody getJSONBody(Object json){return getRawBody(JSON.toJSONString(json),MediaType.parse(ContentType.JSON.toString()));}//GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE/**** @param url* @return* @throws IOException*/public Response get(String url) throws IOException {return get(url,null,null);}/**** @param url* @param params* @return* @throws IOException*/public Response get(String url,Map<String, String> params) throws IOException {return get(url,null,params);}/*** get請(qǐng)求,同步方式,獲取網(wǎng)絡(luò)數(shù)據(jù),是在主線程中執(zhí)行的,需要新起線程,將其放到子線程中執(zhí)行** @param url* @param headers* @param params* @return* @throws IOException*/public Response get(String url,Map<String, String> headers,Map<String, String> params) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).get();return httpClient.newCall(builder.build()).execute();}/***** @param url* @param headers* @param params* @param formData* @return* @throws IOException*/public Response post(String url,Map<String, String> headers,Map<String, String> params,Map<String, String> formData) throws IOException {headers.put(CONTENT_TYPE, ContentType.FORM.toString());return post(url,headers,params,getFormBody(formData));}/**** @param url* @param headers* @param params* @param multipartData* @return* @throws IOException*/public Response postMultipart(String url,Map<String, String> headers,Map<String, String> params,Map<String, Object> multipartData) throws IOException {headers.put(CONTENT_TYPE, ContentType.MULTIPART.toString());return post(url,headers,params,getMultipartBody(multipartData));}/**** @param url* @param headers* @param params* @param json* @return* @throws IOException*/public Response postJSON(String url,Map<String, String> headers,Map<String, String> params,Object json) throws IOException {headers.put(CONTENT_TYPE, ContentType.JSON.toString());return post(url,headers,params,getJSONBody(json));}/*** post form表單 請(qǐng)求,同步方式,提交數(shù)據(jù),是在主線程中執(zhí)行的,需要新起線程,將其放到子線程中執(zhí)行** @param url* @param headers* @param params* @param requestBody* @return* @throws IOException*/private Response post(String url,Map<String, String> headers,Map<String, String> params,RequestBody requestBody) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).post(requestBody);return httpClient.newCall(builder.get().build()).execute();}/**** @param url* @param headers* @param params* @return* @throws IOException*/public Response head(String url,Map<String, String> headers,Map<String, String> params) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).get();return httpClient.newCall(builder.build()).execute();}public Response put(String url,Map<String, String> headers,Map<String, String> params,Map<String, String> formData) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).put(null);return httpClient.newCall(builder.build()).execute();}public Response patch(String url,Map<String, String> headers,Map<String, String> params,Map<String, String> formData) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).patch(null);return httpClient.newCall(builder.build()).execute();}public Response delete(String url,Map<String, String> headers,Map<String, String> params,Map<String, String> formData) throws IOException {Request.Builder builder = new Request.Builder().url(getHttpUrl(url,params)).headers(getHeaders(headers)).delete();return httpClient.newCall(builder.build()).execute();} }

ContentType類(lèi)

package io.shentuzhigang.demo.http.okhttp3;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-09-27 22:16*/ public enum ContentType {FORM("application/x-www-from-urlencoded"),MULTIPART("multipart/form-data"),JSON("application/json");private final String value;private final static String ENCODING = "utf-8";ContentType(String value){this.value = value + ";charset=" +ENCODING;}@Overridepublic String toString(){return value;} }

測(cè)試

package io.shentuzhigang.demo.http.okhttp3;import io.shentuzhigang.demo.http.okhttp3.util.HttpRequestUtil; import org.junit.jupiter.api.Test;import java.io.IOException;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-09-25 22:44*/ public class MainTest {@Testpublic void a() throws IOException {System.out.println(HttpRequestUtil.INSTANCE.get("http://www.baidu.com").body().string());} }

參考文章

OkHttp工具類(lèi)

【記錄】form-data與x-www-form-urlencoded的區(qū)別

HTTP content-type

?

總結(jié)

以上是生活随笔為你收集整理的JAVA——Okhttp封装工具类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

色视频网页 | 香蕉视频在线播放 | 亚洲一二视频 | 亚洲乱码久久 | 欧美资源在线观看 | 精品9999| 久久精品99精品国产香蕉 | 黄色片免费看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 最新av免费在线 | 中文字幕在线视频免费播放 | 看片黄网站| 日韩电影在线观看一区二区 | 色婷婷激婷婷情综天天 | 亚洲最大在线视频 | 国产成人黄色 | 久久久免费 | 国产午夜麻豆影院在线观看 | 麻豆国产电影 | 黄色大全在线观看 | 国产成人av一区二区三区在线观看 | 激情综合六月 | 91av片 | 国产一区免费在线观看 | 干天天 | 久久经典国产 | 在线观看成人小视频 | 五月综合激情 | 久久av黄色| 狂野欧美激情性xxxx | 99人久久精品视频最新地址 | 亚洲欧洲国产视频 | 国内99视频 | av一区二区三区在线播放 | 91麻豆精品国产91久久久更新时间 | 亚洲欧洲日韩在线观看 | 91av手机在线 | 亚洲激情在线 | 色综合久久久网 | 蜜臀一区二区三区精品免费视频 | a黄色| 久久男人免费视频 | 99视频免费 | 国产精品乱码高清在线看 | 久久久久久麻豆 | 国产一区二区三区在线免费观看 | 99综合影院在线 | 日韩中文字幕电影 | 在线视频 精品 | 国产精品激情偷乱一区二区∴ | 人人干网站 | 国产麻豆剧传媒免费观看 | 国产69精品久久久久久 | 国产在线观看你懂的 | 欧美成人黄色片 | 久草网免费| 成年人在线观看网站 | 亚洲五月花 | 91亚洲精品国偷拍自产在线观看 | 狠狠干成人综合网 | 免费观看v片在线观看 | 国产黄色片免费观看 | 国产成人三级三级三级97 | av在线播放免费 | 9999毛片| 日韩一级电影网站 | 国产做aⅴ在线视频播放 | 欧美黑吊大战白妞欧美 | 在线韩国电影免费观影完整版 | 最近中文字幕完整视频高清1 | 精品人人人人 | 成人动漫一区二区三区 | 日韩在线观看网址 | 成年人在线观看免费视频 | 6080yy午夜一二三区久久 | 性色av免费观看 | 五月婷婷亚洲 | 国产一区二区免费 | 91最新在线 | 狠狠操夜夜操 | 97视频亚洲 | 国产精品视频免费在线观看 | 激情婷婷在线观看 | 亚洲精品乱码久久久久久按摩 | 又色又爽的网站 | 国产码电影 | 亚洲欧美视频在线 | 久久激情婷婷 | 久久尤物电影视频在线观看 | 中文字幕永久免费 | 久久黄色小说 | 日韩精品不卡在线观看 | 91精品久久久久久久久久入口 | 欧美日韩免费在线视频 | 亚洲激情婷婷 | 成年人电影毛片 | 91人人爽久久涩噜噜噜 | 97热视频 | 国产高清成人在线 | 综合网色 | 国产精品不卡在线观看 | 久久国产麻豆 | 精品免费观看视频 | 一二三久久久 | 久久综合九色欧美综合狠狠 | 亚洲理论在线观看 | 福利电影久久 | 日韩中文字幕a | 午夜美女福利直播 | 日本中文字幕在线电影 | 久久热亚洲 | 免费a v观看| 午夜精品av在线 | 黄色在线网站噜噜噜 | 久久a免费视频 | 国产v亚洲v | 亚洲视频1区2区 | 日本久久久久久久久 | 国产乱码精品一区二区蜜臀 | 久久久精华网 | 国产精品久久久久婷婷二区次 | 五月婷婷六月丁香 | 嫩小bbbb摸bbb摸bbb | 欧美国产不卡 | 九九交易行官网 | 国内精品在线观看视频 | 狠狠狠狠狠色综合 | 深爱婷婷激情 | 久久99九九99精品 | 欧美成人基地 | 国产精品原创在线 | 久久激情小说 | 91视频 - 88av| 久久99欧美 | 成人午夜电影免费在线观看 | 国产又黄又爽又猛视频日本 | 人人插人人玩 | 天天做日日爱夜夜爽 | 中文字幕三区 | 国产精品s色 | 91成人亚洲| 亚洲精品免费视频 | 久久久久久综合网天天 | 欧美日韩国产精品一区 | 亚洲涩涩网站 | 91av99| 2019中文 | 国产裸体视频网站 | 午夜精品久久久久久久99 | av三级在线播放 | 日本韩国精品一区二区在线观看 | 欧洲亚洲精品 | 日日干网址 | 亚洲天堂网在线视频观看 | 午夜视频导航 | 五月婷久| 国产一区视频在线播放 | 国产午夜亚洲精品 | 国产v在线 | 黄色成人免费电影 | 中文字幕中文字幕 | 在线精品观看国产 | 亚洲天堂免费视频 | 国产精品久久 | 亚洲精品综合在线观看 | 国产精品99页 | 色香蕉网 | 97人人超碰在线 | 福利一区二区 | 韩国av一区二区三区 | 免费a v视频 | 亚洲国产wwwccc36天堂 | 在线观看中文字幕一区 | 手机在线看永久av片免费 | 日本深夜福利视频 | 麻豆你懂的 | 黄网站a | 超碰免费av | 国模一区二区三区四区 | 国产人成一区二区三区影院 | 国产高清无线码2021 | 国产精品久久久久久久久久免费 | 黄网站app在线观看免费视频 | 久久久免费av| 夜夜爽88888免费视频4848 | 香蕉免费在线 | 六月色婷 | 99视频 | 超碰在线日韩 | 午夜免费福利视频 | 久热只有精品 | 免费视频色 | 国产精品日韩在线 | 亚州精品国产 | 99久久久久久久 | 日韩精品你懂的 | 999久久久久 | 在线黄色av电影 | 韩国三级av在线 | 日韩欧美高清一区二区三区 | 成人观看视频 | 美女黄频视频大全 | 99在线精品观看 | 五月天中文字幕 | 日日日操操 | 国产日韩精品在线 | 999视频网 | 国产丝袜在线 | 成人网色 | 91福利小视频 | 欧美日韩一区二区三区不卡 | 亚洲一区久久 | 99操视频| 国产在线黄 | 成人黄色在线观看视频 | 日韩字幕 | 欧美精品亚洲精品日韩精品 | 国产成人综 | 久久婷婷综合激情 | 国产高清精品在线观看 | 91麻豆精品国产91久久久久久 | 久久久久久久亚洲精品 | 日本动漫做毛片一区二区 | 免费三级影片 | 九九久久久久99精品 | 蜜臀精品久久久久久蜜臀 | 久久久久在线视频 | 中文区中文字幕免费看 | 久久免费看毛片 | 国产精品毛片一区视频 | 一区二区视频免费在线观看 | 久久精品视频网站 | 欧美日韩精品综合 | 亚洲精品午夜久久久久久久 | 天天干天天摸天天操 | 久久 一区 | 国产麻豆精品免费视频 | 精品欧美小视频在线观看 | 亚洲激情 欧美激情 | 久久久久日本精品一区二区三区 | 69亚洲乱| 99精品久久久久久久久久综合 | 在线观看www视频 | 一区二区三区免费 | 亚洲黄色小说网址 | 久久免费电影 | 999在线观看视频 | 欧美亚洲精品在线观看 | 正在播放五月婷婷狠狠干 | 亚洲精品久久久蜜桃直播 | 毛片久久久| 日韩欧美在线高清 | 日本在线观看黄色 | 国产色爽 | 五月婷婷欧美 | 在线观看亚洲精品视频 | 丁香在线视频 | www久久九| 亚洲日本韩国一区二区 | 中文字幕中文字幕在线中文字幕三区 | 精品一区中文字幕 | 99成人免费视频 | 国产精品美女999 | 色播五月激情五月 | 伊人狠狠干 | 亚洲国产精品小视频 | 中文字幕在线播放一区 | 日韩欧美在线高清 | 国产精品成人av在线 | 久久久亚洲麻豆日韩精品一区三区 | 欧美成人h版电影 | 精品99在线观看 | 一区二区三区免费在线观看 | 国产精品九九久久99视频 | 精品超碰 | 日韩在线理论 | 在线免费观看国产精品 | 在线天堂中文在线资源网 | 久久永久免费视频 | 久久久蜜桃一区二区 | av无限看| 久久国产精品二国产精品中国洋人 | av在线免费在线 | 91亚洲成人| 久久人人爽人人爽 | 五月天中文字幕mv在线 | 亚洲精品ww | 久久久电影网站 | 久久99免费观看 | 国产在线精品福利 | 欧美精品在线观看免费 | 午夜丰满寂寞少妇精品 | 欧美在线视频a | 欧美少妇影院 | 久久影院亚洲 | 国产精品亚洲片夜色在线 | 亚洲黄色a| 狠狠的干| 日韩电影中文字幕在线观看 | 国内丰满少妇猛烈精品播 | 91最新在线观看 | 久久激情久久 | 精品9999| 男女免费视频观看 | 久久久久女教师免费一区 | 狠狠躁日日躁夜夜躁av | 欧美日韩不卡一区 | 99在线高清视频在线播放 | 国产 亚洲 欧美 在线 | 国产一区二区在线免费 | 亚洲精品成人网 | 久久久综合 | 国产精品国产三级国产 | 亚洲精品欧美视频 | 亚洲综合色丁香婷婷六月图片 | 国产精品久久久久永久免费观看 | 天天舔天天搞 | 青草视频在线看 | 99视频在线免费观看 | 中文字幕免费在线看 | 婷婷色视频 | av丝袜在线| 国产午夜精品福利视频 | 久久经典视频 | 亚洲视频1区2区 | 久久99热国产 | 久久国产精品一二三区 | 99视频久| 亚洲成人国产精品 | 最近免费中文字幕大全高清10 | 久久狠狠亚洲综合 | 国产亚洲在线观看 | 一区二区视频在线看 | 中文字幕欧美日韩va免费视频 | 亚洲国产色一区 | 午夜免费在线观看 | 中文字幕永久免费 | 免费a网 | 欧美一级黄色网 | 国产精品自产拍在线观看网站 | 99久久精品午夜一区二区小说 | 欧美性天天 | 麻豆影视在线观看 | 日韩视频一区二区在线 | 麻豆视频免费观看 | 国产精品美女视频网站 | 久久久免费网站 | 美腿丝袜av | 91精品区 | 午夜精品久久久久久久久久久久久久 | 五月激情站| 久久免费毛片 | 国产一级淫片在线观看 | 在线 精品 国产 | 国产成人久 | 99色亚洲 | 日韩欧美一区二区在线播放 | 97视频播放| 日韩免费播放 | 亚洲视频久久久久 | 久久视频国产 | 亚洲精品乱码久久久久久蜜桃欧美 | 欧美日韩后 | 亚洲va男人天堂 | 夜夜爱av | 欧美一区二区三区在线播放 | 久久99精品久久久久婷婷 | 黄色aa久久 | 天堂av在线中文在线 | 狠狠躁日日躁 | av黄色影院 | 欧美日韩一区二区在线 | 国产一卡久久电影永久 | 操操综合 | 美腿丝袜一区二区三区 | 国产成人黄色av | 亚洲激情p | 日韩精品中文字幕在线播放 | 国产免费一区二区三区网站免费 | 在线观看91网站 | av直接看 | 成人av在线电影 | 国内精品视频在线 | 91久久精品一区二区三区 | 九九热re| 亚洲日日夜夜 | a在线观看免费视频 | 国产精品毛片完整版 | 欧美整片sss | 99精品久久久久 | wwwwww国产 | 国产 日韩 欧美 自拍 | 国产午夜剧场 | 麻豆视传媒官网免费观看 | 日日爱网址 | 日韩在线免费观看视频 | 在线视频手机国产 | 国产高清成人在线 | 久久久久免费精品 | 91在线欧美| 国产精品成人在线观看 | 国产又粗又长的视频 | 日韩在线视频在线观看 | 一级黄毛片| 国内精品久久久久久久久久久 | 国产小视频你懂的在线 | 搡bbbb搡bbb视频 | 午夜视频在线观看一区 | 精品国产一区在线观看 | 国内精品久久久久久 | 91久久久国产精品 | 亚洲一区 影院 | 99成人免费视频 | 欧美精品九九 | 少妇18xxxx性xxxx片 | 9i看片成人免费看片 | 国产aa免费视频 | 三级av中文字幕 | 349k.cc看片app | 国产伦精品一区二区三区四区视频 | 久久久久在线视频 | 91精品在线观看视频 | 美国av大片 | 亚洲婷婷在线视频 | 69国产盗摄一区二区三区五区 | 黄色三级网站在线观看 | 欧美午夜性生活 | 色黄www小说 | 国产视频一二区 | 久久伊人八月婷婷综合激情 | 精品99免费视频 | 日韩av一卡二卡三卡 | 国产精品专区h在线观看 | 亚洲成人在线免费 | 久久免费视频观看 | 国产明星视频三级a三级点| 五月天综合 | 国产裸体视频bbbbb | 久久免费视屏 | 麻豆视频免费在线 | 91在线视频观看免费 | 精品一区电影 | 久久久久国产精品一区 | 精品国产诱惑 | 天天草天天色 | 夜夜婷婷 | 精品美女在线视频 | 国产精品日韩 | 日韩精品中文字幕一区二区 | 中文字幕一区二区三区久久 | 五月开心六月婷婷 | 伊人天堂久久 | 手机av观看 | 久草在线网址 | 国产1区2 | 亚洲午夜精 | 亚洲h在线播放在线观看h | 成人黄色大片在线免费观看 | 国产亚洲精品久久 | 亚洲精品一区中文字幕乱码 | 国产午夜精品一区二区三区四区 | 亚洲成aⅴ人在线观看 | 激情欧美xxxx| 天堂av影院| 亚洲日b视频 | 久久久999| 97超碰中文字幕 | 婷婷中文字幕在线观看 | 日韩精品视频免费在线观看 | 成人av电影在线播放 | 99免费在线视频 | 亚洲综合色av | 麻花豆传媒一二三产区 | 美女黄网站视频免费 | 97在线视频观看 | 激情五月色播五月 | 亚洲天堂网站视频 | 欧美一级性 | 欧美视频在线观看免费网址 | 亚洲欧美在线综合 | av中文字幕在线免费观看 | 在线黄色免费 | 久草线| 色先锋av资源中文字幕 | 色婷婷综合久久久中文字幕 | 日本性xxxxx| 日本性xxxxx 亚洲精品午夜久久久 | 日韩久久久久久久久 | 国产精品1区2区3区 久久免费视频7 | 国产美女精品视频 | 999精品网 | 日韩精品一区二区免费 | 在线观看视频h | 最近更新的中文字幕 | 99中文字幕视频 | 麻花天美星空视频 | 欧美午夜精品久久久久久浪潮 | 日韩精品在线免费观看 | 精品国产aⅴ一区二区三区 在线直播av | 亚洲视频第一页 | 麻豆国产精品永久免费视频 | 在线观看日韩精品 | 日日夜夜操操操操 | 激情欧美日韩一区二区 | 97在线视频免费观看 | a视频在线看| 91精品国自产在线偷拍蜜桃 | 亚洲精品国产成人av在线 | 黄色大片网 | 午夜久久福利影院 | 国产精品久久一区二区三区, | 久久久综合电影 | 探花在线观看 | 东方av在线免费观看 | 狠狠做深爱婷婷综合一区 | av中文字幕第一页 | 91av99| 国产一区二区在线免费播放 | 中文国产字幕 | 国产精品视频 | 欧美性生活免费看 | 伊人国产在线观看 | 9在线观看免费高清完整版在线观看明 | 综合网天天 | 日韩网站在线播放 | 97av在线视频免费播放 | 最近日本韩国中文字幕 | 99久久久久久久 | 91精品网站 | 热精品 | 欧美日韩免费网站 | 狠狠色丁香 | 视频91| 99综合电影在线视频 | 黄色影院在线观看 | 国产成人精品综合久久久久99 | 狠狠色噜噜狠狠 | 婷婷网站天天婷婷网站 | 亚洲欧美日韩国产一区二区三区 | 狠狠干天天干 | 伊人婷婷综合 | 国产精品久久久区三区天天噜 | 色中色综合 | 欧美精品在线观看 | 色偷偷88888欧美精品久久久 | 亚a在线 | 日韩高清精品免费观看 | 日韩区欠美精品av视频 | 日韩色一区二区三区 | 青青河边草免费视频 | 色综合www| 亚洲精品在线观看的 | 欧美aa级 | 五月婷婷.com | 国产一级片不卡 | 性色大片在线观看 | 超碰97人| 99re中文字幕 | 久久看视频| 国产人免费人成免费视频 | 亚洲欧美国产精品va在线观看 | 国产精品一区二区三区免费看 | 国产精品免费不卡 | 国产成人精品久久久久蜜臀 | 日韩av免费在线电影 | a电影在线观看 | 免费a视频在线 | 日韩视频免费观看高清 | 色老板在线视频 | 国产精品中文久久久久久久 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 99激情网 | 在线免费色视频 | 青青色影院 | 久久天天躁夜夜躁狠狠躁2022 | 婷婷伊人五月天 | 国产在线观看一区 | 丁香网五月天 | 人人爽人人澡 | 亚洲精品在线一区二区 | 色网站免费在线观看 | 97在线免费视频观看 | 婷婷视频在线 | 国产免费作爱视频 | 天天爱天天插 | 亚州天堂 | 久久好看免费视频 | 免费一级毛毛片 | 婷婷5月色| 国产精品嫩草在线 | 国产精品久久久久久久7电影 | 欧美一级片免费播放 | 国产精品一区二区 91 | 中文字幕黄色网 | 伊人丁香| 精品国产伦一区二区三区观看体验 | 久久免费毛片视频 | 国产一级精品视频 | 久久精品超碰 | www.色午夜| 免费黄色在线播放 | 国产精品99久久久久久久久 | 中文av资源站 | 日韩v在线91成人自拍 | 天天色天天上天天操 | 精品视频999 | 91免费观看网站 | 五月天狠狠操 | 国内精品久久久久久久影视麻豆 | 久久欧美综合 | 亚洲美女精品 | 亚洲成人精品 | 成年人国产视频 | 色婷婷电影 | 久久精品国产99 | 亚洲欧美国产精品 | 9色在线视频 | 久久天堂精品视频 | 91观看视频 | 99精品视频免费全部在线 | 欧美成人日韩 | 国产精品久久久久久久久软件 | 九九久久视频 | 久久国产精品99精国产 | 成人精品国产免费网站 | 中文字幕在线观 | www.97视频| 贫乳av女优大全 | 欧美精品乱码久久久久久按摩 | 国产a级片免费观看 | 精品99免费视频 | 国产亚洲综合性久久久影院 | 五月天婷婷视频 | 国产精品视频最多的网站 | 欧美日韩国产精品一区二区 | 久久婷五月 | 在线观看视频国产 | 99re6热在线精品视频 | 特级毛片aaa | 亚洲禁18久人片 | 在线免费观看视频你懂的 | 91在线在线观看 | 国产精品免费一区二区 | 国产成人一区二区三区 | 日本在线观看中文字幕无线观看 | 欧美日韩在线观看一区二区 | 久久影视网| 日本成人黄色片 | 日韩av在线资源 | 亚洲国产一二三 | 狠狠色噜噜狠狠狠狠 | 国产又粗又猛又色又黄网站 | 不卡av在线| 精品亚洲男同gayvideo网站 | 免费看黄的 | 色综合中文字幕 | 久久九九免费视频 | 久草在线国产 | 精品国产伦一区二区三区观看说明 | 1024手机看片国产 | 国产精品video爽爽爽爽 | 久久国产亚洲视频 | 99精品一级欧美片免费播放 | 蜜臀久久99精品久久久酒店新书 | 手机av资源 | av免费看在线 | 91精品一区国产高清在线gif | 日韩深夜在线观看 | 91日本在线播放 | 亚洲,国产成人av | 6080yy午夜一二三区久久 | 免费视频黄 | 有码中文在线 | 国产在线a免费观看 | 免费观看成人av | 在线亚洲免费视频 | 99国产精品久久久久老师 | 亚洲精品中文字幕视频 | 国产黄影院色大全免费 | 黄色三级视频片 | 五月天久久久 | 99精品视频在线看 | 亚洲欧美日韩国产一区二区 | 国产中的精品av小宝探花 | 国产午夜精品福利视频 | 精品亚洲免费 | 欧美一级电影在线观看 | 精品在线视频一区 | 999视频网站 | 男女视频91 | 亚洲资源在线网 | 婷婷中文字幕在线观看 | 天天操天天操天天操天天 | 欧美精品国产综合久久 | 激情开心色 | 久久久高清 | 亚洲激情国产精品 | 亚洲 中文 欧美 日韩vr 在线 | 亚洲欧美日韩在线看 | 免费看的av片 | 亚洲精品国产拍在线 | 日本精品在线视频 | 久久无码av一区二区三区电影网 | 日韩亚洲在线视频 | 99精品影视| 久章草在线观看 | а中文在线天堂 | www黄色com| 在线婷婷| 国产不卡一区二区视频 | 91人人揉日日捏人人看 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产高清在线免费 | 国产一区视频在线观看免费 | www.福利 | 五月婷婷网站 | 在线观看www91 | 视频在线一区 | 精品国产欧美 | 久精品视频免费观看2 | 91成人黄色 | 久久久久久久久久久免费 | 国产精品手机在线观看 | 精品福利国产 | 韩国av在线| 午夜视频在线观看欧美 | 91一区二区三区在线观看 | 国产精品剧情在线亚洲 | 午夜私人影院久久久久 | 永久免费精品视频 | 欧美激情视频一区 | 国产精品视屏 | 热九九精品 | 国产精品乱码高清在线看 | 一级成人免费视频 | 久久国产一区二区 | 一区二区三区韩国免费中文网站 | 日韩视频免费播放 | 久久国产免费 | 久久久久成人免费 | 人人爽人人爱 | 久久极品| 五月天亚洲婷婷 | 青青草华人在线视频 | 激情中文在线 | 欧美日韩在线视频观看 | 91视频91蝌蚪 | 国产成人精品在线 | 国产免费一区二区三区最新6 | 国产手机在线精品 | 久久九九影院 | 黄色av网站在线观看免费 | 久久成熟 | 免费网站色 | 亚洲国产中文字幕在线观看 | 波多野结衣在线观看一区二区三区 | 久草com | 久久久久国产免费免费 | 手机在线黄色网址 | 91av在线视频播放 | 黄色在线免费观看网站 | 992tv成人免费看片 | 亚洲精品美女在线观看 | 国产免码va在线观看免费 | 中文字幕一区二区在线播放 | 国产精品久久久久一区 | 免费韩国av | 97国产情侣爱久久免费观看 | 麻豆高清免费国产一区 | 国产精品久久99综合免费观看尤物 | 91探花国产综合在线精品 | 国产精品久久久电影 | 久久精品综合一区 | 97超级碰碰碰视频在线观看 | 国产精品久久一区二区三区不卡 | 国产日韩欧美视频在线观看 | 精品视频免费播放 | 日韩精品久久久久 | 国产日韩欧美在线影视 | 婷婷精品国产欧美精品亚洲人人爽 | 精品999 | 91丨九色丨91啦蝌蚪老版 | 在线观看aa| 中文字幕免费观看全部电影 | 国产精品自产拍在线观看桃花 | 99久久久国产免费 | 狠狠搞,com| 国产不卡毛片 | 五月天色中色 | 免费看片网站91 | 日韩三级.com| 国产99中文字幕 | 丁香激情视频 | 国产91粉嫩白浆在线观看 | 精品久久久久久国产91 | 91丨九色丨91啦蝌蚪老版 | 欧美一区免费观看 | 免费91麻豆精品国产自产在线观看 | 国产精品日韩久久久久 | 久久国产系列 | 男女激情网址 | 在线免费黄色av | 日日夜夜噜噜噜 | 久草在线观看视频免费 | 天天综合狠狠精品 | 国产精品一区二区av影院萌芽 | 91最新在线观看 | av一级网站 | 国产久草在线观看 | 国产亚洲精品久久19p | 日本在线精品视频 | 久久午夜精品视频 | 久久久久国产精品www | 激情网婷婷 | 成人97视频 | 国产亚洲一级高清 | 国产成人a v电影 | 精品久久久久久久久中文字幕 | 久久精品国产一区二区 | 婷婷六月中文字幕 | 在线国产视频观看 | 日本91在线 | 在线免费观看黄网站 | 亚洲欧美日韩中文在线 | 六月丁香在线观看 | 国产蜜臀av | 国产成人精品不卡 | 91视频在线免费看 | 黄色国产在线观看 | 91精品久久久久久粉嫩 | 欧美色图另类 | 蜜臀av性久久久久蜜臀av | 婷婷六月色 | 国产精品成人久久久 | 国产精品一区二区久久久 | 日韩网站视频 | 色五月激情五月 | 97超碰在线免费观看 | 久久好看免费视频 | 1024手机看片国产 | 人人狠狠综合久久亚洲婷 | 高清av免费看 | 亚洲人成人天堂h久久 | 激情久久五月天 | 久久视频一区 | 成人黄色电影在线观看 | 激情五月看片 | 色婷五月| 国产色爽 | 伊甸园永久入口www 99热 精品在线 | 精品国产观看 | 亚州欧美精品 | 成人91免费视频 | 色网站在线| 超碰国产在线播放 | 韩国av永久免费 | 免费国产视频 | 久久大片网站 | 国产精品毛片久久久 | 国产一区二区精品久久 | 日韩色一区二区三区 | 五月天久久婷 | 91色网址 | 国产成人精品久久久久蜜臀 | 制服丝袜成人在线 | 97在线观看免费高清完整版在线观看 | 91精品蜜桃| 免费黄色网址网站 | 综合激情网...| 综合在线亚洲 | 成人一区二区三区在线 | 免费试看一区 | 久久精品中文字幕少妇 | 九月婷婷人人澡人人添人人爽 | 国产精品久久久久三级 | 日日干天天 | 狠狠色丁香婷综合久久 | 人人要人人澡人人爽人人dvd | 久久精品aaa | 日韩动态视频 | 欧洲一区二区在线观看 | 亚洲一区二区三区在线看 | 国产一区二区精 | 国产精品美女久久久久久网站 | 亚洲资源 | 色婷婷激情电影 | 日韩欧美精品一区 | 久草国产在线 | 国产精品久久久久久妇 | 精品久久网站 | 日韩精品久久久久久中文字幕8 | 91麻豆精品国产91 | 色综合久久久久久久久五月 | 亚洲永久字幕 | 中文字幕在线观看视频网站 | 国产视频精品免费播放 | 久久久伊人网 | 中日韩在线 | 久久久蜜桃一区二区 | 日韩一区二区三区在线看 | 久草在线视频中文 | 国产精品6999成人免费视频 | 香蕉视频在线免费 | 精品视频国产一区 | 亚洲综合成人专区片 | 在线99| 中文字幕在线乱 | 天堂在线一区 | 日韩av图片 | 欧美一区二区视频97 | 国产91学生粉嫩喷水 | 日韩三级视频在线观看 | 色综合久久网 | 五月天六月婷 | 久久综合九色综合欧美狠狠 | 夜夜骑天天操 | 久久免费播放 | 天天做天天爽 | 99精品欧美一区二区三区黑人哦 | 午夜视频黄 | sm免费xx网站 | 免费在线观看国产黄 | 日本爱爱免费视频 | 五月天.com | 成 人 黄 色 视频免费播放 | 亚洲人人爱 | 五月天激情综合 | 久久精品免费看 | 欧美日韩国产三级 | 亚洲人久久久 | 最近中文字幕视频完整版 | 免费看片日韩 | 国产电影黄色av | 免费男女羞羞的视频网站中文字幕 | 国产精品一区二区 91 | 五月婷在线观看 | 18+视频网站链接 | 亚洲精品自拍 | 天天搞天天 | 天天综合成人网 | 亚洲欧美国产精品va在线观看 | 91最新地址永久入口 | 成人av电影免费在线播放 | 国内精品久久久久 | 日韩精品第1页 | 国产精品免费视频久久久 | 精品久久亚洲 | 成人黄色片在线播放 | 99在线观看视频 | 成人在线免费小视频 | avhd高清在线谜片 | 中文字幕在线专区 | v片在线看 | 97小视频| 97国产情侣爱久久免费观看 | 欧美日韩亚洲第一页 | 精品欧美乱码久久久久久 | 日本性生活一级片 | 亚洲精品一区二区精华 | 亚洲精品www. | 天堂av免费 | 综合久久五月天 | 国产在线免费av | 玖玖玖在线观看 | 欧美综合色在线图区 | 色在线亚洲 | 成人免费共享视频 | 欧美日韩一区二区在线观看 | 在线观看免费版高清版 | 日日天天| 综合久久久久 | 一区二区精品视频 | 国产97色 | 日韩有码网站 | 亚洲影院色 | 久久久久高清毛片一级 | 干综合网 | 色五丁香 | 欧美日韩高清在线 | 免费av试看 | 日韩一区二区三免费高清在线观看 | 激情丁香综合五月 | 7777精品伊人久久久大香线蕉 | 亚洲天堂社区 | 国产乱老熟视频网88av | 91精品国自产在线观看 | 在线免费观看麻豆视频 | 色婷婷激情网 | 91超在线 | 精品一区二区在线观看 | 婷婷六月天丁香 | 久久久久久高清 | www.黄色 | 婷婷激情五月 | 日韩电影中文字幕 | 又黄又爽免费视频 | 久久人人爽人人爽人人 | 亚洲国产日韩欧美在线 |