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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

安卓okhttp连接mysql_android中okhttp实现断点上传示例

發布時間:2025/3/20 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓okhttp连接mysql_android中okhttp实现断点上传示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

之前項目需要上傳大文件的功能,上傳大文件經常遇到上傳一半由于網絡或者其他一些原因上傳失敗。然后又得重新上傳(很麻煩),所以就想能不能做個斷點上傳的功能。于是網上搜索,發現市面上很少有斷點上傳的案例,有找到一個案例也是采用SOCKET作為上傳方式(大文件上傳,不適合使用POST,GET形式)。由于大文件夾不適合http上傳的方式,所以就想能不能把大文件切割成n塊小文件,然后上傳這些小文件,所有小文件全部上傳成功后再在服務器上進行拼接。這樣不就可以實現斷點上傳,又解決了http不適合上傳大文件的難題了嗎!!!

原理分析

Android客戶端

首先,android端調用服務器接口1,參數為filename(服務器標識判斷是否上傳過)

如果存在filename,說明之前上傳過,則續傳;如果沒有,則從零開始上傳。

然后,android端調用服務器接口2,傳入參數name,chunck(傳到第幾塊),chuncks(總共多少塊)

服務器端

接口一:根據上傳文件名稱filename 判斷是否之前上傳過,沒有則返回客戶端chunck=1,有則讀取記錄chunck并返回。

接口二:上傳文件,如果上傳塊數chunck=chuncks,遍歷所有塊文件拼接成一個完整文件。

服務端源代碼

服務器接口1

@WebServlet(urlPatterns = { "/ckeckFileServlet" })

public class CkeckFileServlet extends HttpServlet {

private FileUploadStatusServiceI statusService;

String repositoryPath;

String uploadPath;

@Override

public void init(ServletConfig config) throws ServletException {

ServletContext servletContext = config.getServletContext();

WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);

statusService = (FileUploadStatusServiceI) context.getBean("fileUploadStatusServiceImpl");

repositoryPath = FileUtils.getTempDirectoryPath();

uploadPath = config.getServletContext().getRealPath("datas/uploader");

File up = new File(uploadPath);

if (!up.exists()) {

up.mkdir();

}

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// TODO Auto-generated method stub

String fileName = new String(req.getParameter("filename"));

//String chunk = req.getParameter("chunk");

//System.out.println(chunk);

System.out.println(fileName);

resp.setContentType("text/json; charset=utf-8");

TfileUploadStatus file = statusService.get(fileName);

try {

if (file != null) {

int schunk = file.getChunk();

deleteFile(uploadPath + schunk + "_" + fileName);

//long off = schunk * Long.parseLong(chunkSize);

resp.getWriter().write("{\"off\":" + schunk + "}");

} else {

resp.getWriter().write("{\"off\":1}");

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

服務器接口2

@WebServlet(urlPatterns = { "/uploaderWithContinuinglyTransferring" })

public class UploaderServletWithContinuinglyTransferring extends HttpServlet {

private static final long serialVersionUID = 1L;

private FileUploadStatusServiceI statusService;

String repositoryPath;

String uploadPath;

@Override

public void init(ServletConfig config) throws ServletException {

ServletContext servletContext = config.getServletContext();

WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);

statusService = (FileUploadStatusServiceI) context.getBean("fileUploadStatusServiceImpl");

repositoryPath = FileUtils.getTempDirectoryPath();

System.out.println("臨時目錄:" + repositoryPath);

uploadPath = config.getServletContext().getRealPath("datas/uploader");

System.out.println("目錄:" + uploadPath);

File up = new File(uploadPath);

if (!up.exists()) {

up.mkdir();

}

}

@SuppressWarnings("unchecked")

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");

Integer schunk = null;// 分割塊數

Integer schunks = null;// 總分割數

String name = null;// 文件名

BufferedOutputStream outputStream = null;

if (ServletFileUpload.isMultipartContent(request)) {

try {

DiskFileItemFactory factory = new DiskFileItemFactory();

factory.setSizeThreshold(1024);

factory.setRepository(new File(repositoryPath));// 設置臨時目錄

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

upload.setSizeMax(5 * 1024 * 1024 * 1024);// 設置附近大小

List items = upload.parseRequest(request);

// 生成新文件名

String newFileName = null;

for (FileItem item : items) {

if (!item.isFormField()) {// 如果是文件類型

name = newFileName;// 獲得文件名

if (name != null) {

String nFname = newFileName;

if (schunk != null) {

nFname = schunk + "_" + name;

}

File savedFile = new File(uploadPath, nFname);

item.write(savedFile);

}

} else {

// 判斷是否帶分割信息

if (item.getFieldName().equals("chunk")) {

schunk = Integer.parseInt(item.getString());

//System.out.println(schunk);

}

if (item.getFieldName().equals("chunks")) {

schunks = Integer.parseInt(item.getString());

}

if (item.getFieldName().equals("name")) {

newFileName = new String(item.getString());

}

}

}

//System.out.println(schunk + "/" + schunks);

if (schunk != null && schunk == 1) {

TfileUploadStatus file = statusService.get(newFileName);

if (file != null) {

statusService.updateChunk(newFileName, schunk);

} else {

statusService.add(newFileName, schunk, schunks);

}

} else {

TfileUploadStatus file = statusService.get(newFileName);

if (file != null) {

statusService.updateChunk(newFileName, schunk);

}

}

if (schunk != null && schunk.intValue() == schunks.intValue()) {

outputStream = new BufferedOutputStream(new FileOutputStream(new File(uploadPath, newFileName)));

// 遍歷文件合并

for (int i = 1; i <= schunks; i++) {

//System.out.println("文件合并:" + i + "/" + schunks);

File tempFile = new File(uploadPath, i + "_" + name);

byte[] bytes = FileUtils.readFileToByteArray(tempFile);

outputStream.write(bytes);

outputStream.flush();

tempFile.delete();

}

outputStream.flush();

}

response.getWriter().write("{\"status\":true,\"newName\":\"" + newFileName + "\"}");

} catch (FileUploadException e) {

e.printStackTrace();

response.getWriter().write("{\"status\":false}");

} catch (Exception e) {

e.printStackTrace();

response.getWriter().write("{\"status\":false}");

} finally {

try {

if (outputStream != null)

outputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

android端源碼

UploadTask 上傳線程類

package com.mainaer.wjoklib.okhttp.upload;

import android.database.sqlite.SQLiteDatabase;

import android.os.Environment;

import android.os.Handler;

import android.os.Looper;

import android.os.Message;

import android.text.TextUtils;

import java.io.Closeable;

import java.io.File;

import java.io.IOException;

import java.text.DecimalFormat;

import java.util.HashMap;

import java.util.Map;

import okhttp3.Headers;

import okhttp3.MediaType;

import okhttp3.MultipartBody;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.RequestBody;

import okhttp3.Response;

/**

* 上傳線程

*

* @author hst

* @date 2016/9/6 .

*/

public class UploadTask implements Runnable {

private static String FILE_MODE = "rwd";

private OkHttpClient mClient;

private SQLiteDatabase db;

private UploadTaskListener mListener;

private Builder mBuilder;

private String id;// task id

private String url;// file url

private String fileName; // File name when saving

private int uploadStatus;

private int chunck, chuncks;//流塊

private int position;

private int errorCode;

static String BOUNDARY = "----------" + System.currentTimeMillis();

public static final MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("multipart/form-data;boundary=" + BOUNDARY);

private UploadTask(Builder builder) {

mBuilder = builder;

mClient = new OkHttpClient();

this.id = mBuilder.id;

this.url = mBuilder.url;

this.fileName = mBuilder.fileName;

this.uploadStatus = mBuilder.uploadStatus;

this.chunck = mBuilder.chunck;

this.setmListener(mBuilder.listener);

// 以kb為計算單位

}

@Override

public void run() {

try {

int blockLength = 1024 * 1024;

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator +fileName);

if (file.length() % blockLength == 0) {

chuncks = (int) file.length() / blockLength;

} else {

chuncks = (int) file.length() / blockLength + 1;

}

while (chunck <= chuncks&&uploadStatus!= UploadStatus.UPLOAD_STATUS_PAUSE&&uploadStatus!= UploadStatus.UPLOAD_STATUS_ERROR)

{

uploadStatus = UploadStatus.UPLOAD_STATUS_UPLOADING;

Map params = new HashMap();

params.put("name", fileName);

params.put("chunks", chuncks + "");

params.put("chunk", chunck + "");

final byte[] mBlock = FileUtils.getBlock((chunck - 1) * blockLength, file, blockLength);

MultipartBody.Builder builder = new MultipartBody.Builder()

.setType(MultipartBody.FORM);

addParams(builder, params);

RequestBody requestBody = RequestBody.create(MEDIA_TYPE_MARKDOWN, mBlock);

builder.addFormDataPart("mFile", fileName, requestBody);

Request request = new Request.Builder()

.url(url+ "uploaderWithContinuinglyTransferring")

.post(builder.build())

.build();

Response response = null;

response = mClient.newCall(request).execute();

if (response.isSuccessful()) {

onCallBack();

chunck++;

/* if (chunck <= chuncks) {

run();

}*/

}

else

{

uploadStatus = UploadStatus.UPLOAD_STATUS_ERROR;

onCallBack();

}

}

} catch (IOException e) {

uploadStatus = UploadStatus.UPLOAD_STATUS_ERROR;

onCallBack();

e.printStackTrace();

}

}

/* *//**

* 刪除數據庫文件和已經上傳的文件

*//*

public void cancel() {

if (mListener != null)

mListener.onCancel(UploadTask.this);

}*/

/**

* 分發回調事件到ui層

*/

private void onCallBack() {

mHandler.sendEmptyMessage(uploadStatus);

// 同步manager中的task信息

//UploadManager.getInstance().updateUploadTask(this);

}

Handler mHandler = new Handler(Looper.getMainLooper()) {

@Override

public void handleMessage(Message msg) {

int code = msg.what;

switch (code) {

// 上傳失敗

case UploadStatus.UPLOAD_STATUS_ERROR:

mListener.onError(UploadTask.this, errorCode,position);

break;

// 正在上傳

case UploadStatus.UPLOAD_STATUS_UPLOADING:

mListener.onUploading(UploadTask.this, getDownLoadPercent(), position);

// 暫停上傳

break;

case UploadStatus.UPLOAD_STATUS_PAUSE:

mListener.onPause(UploadTask.this);

break;

}

}

};

private String getDownLoadPercent() {

String baifenbi = "0";// 接受百分比的值

if (chunck >= chuncks) {

return "100";

}

double baiy = chunck * 1.0;

double baiz = chuncks * 1.0;

// 防止分母為0出現NoN

if (baiz > 0) {

double fen = (baiy / baiz) * 100;

//NumberFormat nf = NumberFormat.getPercentInstance();

//nf.setMinimumFractionDigits(2); //保留到小數點后幾位

// 百分比格式,后面不足2位的用0補齊

//baifenbi = nf.format(fen);

//注釋掉的也是一種方法

DecimalFormat df1 = new DecimalFormat("0");//0.00

baifenbi = df1.format(fen);

}

return baifenbi;

}

private String getFileNameFromUrl(String url) {

if (!TextUtils.isEmpty(url)) {

return url.substring(url.lastIndexOf("/") + 1);

}

return System.currentTimeMillis() + "";

}

private void close(Closeable closeable) {

try {

closeable.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public void setClient(OkHttpClient mClient) {

this.mClient = mClient;

}

public Builder getBuilder() {

return mBuilder;

}

public void setBuilder(Builder builder) {

this.mBuilder = builder;

}

public String getId() {

if (!TextUtils.isEmpty(id)) {

} else {

id = url;

}

return id;

}

public String getUrl() {

return url;

}

public String getFileName() {

return fileName;

}

public void setUploadStatus(int uploadStatus) {

this.uploadStatus = uploadStatus;

}

public int getUploadStatus() {

return uploadStatus;

}

public void setmListener(UploadTaskListener mListener) {

this.mListener = mListener;

}

public static class Builder {

private String id;// task id

private String url;// file url

private String fileName; // File name when saving

private int uploadStatus = UploadStatus.UPLOAD_STATUS_INIT;

private int chunck;//第幾塊

private UploadTaskListener listener;

/**

* 作為上傳task開始、刪除、停止的key值,如果為空則默認是url

*

* @param id

* @return

*/

public Builder setId(String id) {

this.id = id;

return this;

}

/**

* 上傳url(not null)

*

* @param url

* @return

*/

public Builder setUrl(String url) {

this.url = url;

return this;

}

/**

* 設置上傳狀態

*

* @param uploadStatus

* @return

*/

public Builder setUploadStatus(int uploadStatus) {

this.uploadStatus = uploadStatus;

return this;

}

/**

* 第幾塊

*

* @param chunck

* @return

*/

public Builder setChunck(int chunck) {

this.chunck = chunck;

return this;

}

/**

* 設置文件名

*

* @param fileName

* @return

*/

public Builder setFileName(String fileName) {

this.fileName = fileName;

return this;

}

/**

* 設置上傳回調

*

* @param listener

* @return

*/

public Builder setListener(UploadTaskListener listener) {

this.listener = listener;

return this;

}

public UploadTask build() {

return new UploadTask(this);

}

}

private void addParams(MultipartBody.Builder builder, Map params) {

if (params != null && !params.isEmpty()) {

for (String key : params.keySet()) {

builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""),

RequestBody.create(null, params.get(key)));

}

}

}

}

UploadManager上傳管理器

package com.mainaer.wjoklib.okhttp.upload;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import java.util.HashMap;

import java.util.Map;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Future;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;

/**

* 上傳管理器

*

* @author wangjian

* @date 2016/5/13 .

*/

public class UploadManager {

private static Context mContext;

private static SQLiteDatabase db;

private OkHttpClient mClient;

private int mPoolSize = 20;

// 將執行結果保存在future變量中

private Map mFutureMap;

private ExecutorService mExecutor;

private Map mCurrentTaskList;

static UploadManager manager;

/**

* 方法加鎖,防止多線程操作時出現多個實例

*/

private static synchronized void init() {

if (manager == null) {

manager = new UploadManager();

}

}

/**

* 獲得當前對象實例

*

* @return 當前實例對象

*/

public final static UploadManager getInstance() {

if (manager == null) {

init();

}

return manager;

}

/**

* 管理器初始化,建議在application中調用

*

* @param context

*/

public static void init(Context context, SQLiteDatabase db1) {

mContext = context;

db = db1;

getInstance();

}

public UploadManager() {

initOkhttpClient();

// 初始化線程池

mExecutor = Executors.newFixedThreadPool(mPoolSize);

mFutureMap = new HashMap<>();

mCurrentTaskList = new HashMap<>();

}

/**

* 初始化okhttp

*/

private void initOkhttpClient() {

OkHttpClient.Builder okBuilder = new OkHttpClient.Builder();

okBuilder.connectTimeout(1000, TimeUnit.SECONDS);

okBuilder.readTimeout(1000, TimeUnit.SECONDS);

okBuilder.writeTimeout(1000, TimeUnit.SECONDS);

mClient = okBuilder.build();

}

/**

* 添加上傳任務

*

* @param uploadTask

*/

public void addUploadTask(UploadTask uploadTask) {

if (uploadTask != null && !isUploading(uploadTask)) {

uploadTask.setClient(mClient);

uploadTask.setUploadStatus(UploadStatus.UPLOAD_STATUS_INIT);

// 保存上傳task列表

mCurrentTaskList.put(uploadTask.getId(), uploadTask);

Future future = mExecutor.submit(uploadTask);

mFutureMap.put(uploadTask.getId(), future);

}

}

private boolean isUploading(UploadTask task) {

if (task != null) {

if (task.getUploadStatus() == UploadStatus.UPLOAD_STATUS_UPLOADING) {

return true;

}

}

return false;

}

/**

* 暫停上傳任務

*

* @param id 任務id

*/

public void pause(String id) {

UploadTask task = getUploadTask(id);

if (task != null) {

task.setUploadStatus(UploadStatus.UPLOAD_STATUS_PAUSE);

}

}

/**

* 重新開始已經暫停的上傳任務

*

* @param id 任務id

*/

public void resume(String id, UploadTaskListener listener) {

UploadTask task = getUploadTask(id);

if (task != null) {

addUploadTask(task);

}

}

/* *//**

* 取消上傳任務(同時會刪除已經上傳的文件,和清空數據庫緩存)

*

* @param id 任務id

* @param listener

*//*

public void cancel(String id, UploadTaskListener listener) {

UploadTask task = getUploadTask(id);

if (task != null) {

mCurrentTaskList.remove(id);

mFutureMap.remove(id);

task.setmListener(listener);

task.cancel();

task.setDownloadStatus(UploadStatus.DOWNLOAD_STATUS_CANCEL);

}

}*/

/**

* 實時更新manager中的task信息

*

* @param task

*/

public void updateUploadTask(UploadTask task) {

if (task != null) {

UploadTask currTask = getUploadTask(task.getId());

if (currTask != null) {

mCurrentTaskList.put(task.getId(), task);

}

}

}

/**

* 獲得指定的task

*

* @param id task id

* @return

*/

public UploadTask getUploadTask(String id) {

UploadTask currTask = mCurrentTaskList.get(id);

if (currTask == null) {

currTask = parseEntity2Task(new UploadTask.Builder().build());

// 放入task list中

mCurrentTaskList.put(id, currTask);

}

return currTask;

}

private UploadTask parseEntity2Task(UploadTask currTask) {

UploadTask.Builder builder = new UploadTask.Builder()//

.setUploadStatus(currTask.getUploadStatus())

.setFileName(currTask.getFileName())//

.setUrl(currTask.getUrl())

.setId(currTask.getId());

currTask.setBuilder(builder);

return currTask;

}

}

FileUtils文件分塊類

package com.mainaer.wjoklib.okhttp.upload;

import java.io.File;

import java.io.IOException;

import java.io.RandomAccessFile;

public class FileUtils {

public static byte[] getBlock(long offset, File file, int blockSize) {

byte[] result = new byte[blockSize];

RandomAccessFile accessFile = null;

try {

accessFile = new RandomAccessFile(file, "r");

accessFile.seek(offset);

int readSize = accessFile.read(result);

if (readSize == -1) {

return null;

} else if (readSize == blockSize) {

return result;

} else {

byte[] tmpByte = new byte[readSize];

System.arraycopy(result, 0, tmpByte, 0, readSize);

return tmpByte;

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (accessFile != null) {

try {

accessFile.close();

} catch (IOException e1) {

}

}

}

return null;

}

}

UploadTaskListener 接口類

package com.mainaer.wjoklib.okhttp.upload;

import com.mainaer.wjoklib.okhttp.download.DownloadStatus;

import java.io.File;

/**

* Created by hst on 16/9/21.

*/

public interface UploadTaskListener {

/**

* 上傳中

*

* @param percent

* @param uploadTask

*/

void onUploading(UploadTask uploadTask, String percent,int position)

/**

* 上傳成功

*

* @param file

* @param uploadTask

*/

void onUploadSuccess(UploadTask uploadTask, File file);

/**

* 上傳失敗

*

* @param uploadTask

* @param errorCode {@link DownloadStatus}

*/

void onError(UploadTask uploadTask, int errorCode,int position);

/**

* 上傳暫停

*

* @param uploadTask

*

*/

void onPause(UploadTask uploadTask);

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的安卓okhttp连接mysql_android中okhttp实现断点上传示例的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲精品中文字幕在线观看 | 亚洲黄色免费在线看 | 麻豆一二 | 91丨九色丨蝌蚪丨老版 | 久久草av| 91亚洲在线 | 亚洲精品色婷婷 | 91精品老司机久久一区啪 | 99看视频在线观看 | 久久a级片| 999抗病毒口服液 | 特级西西人体444是什么意思 | 欧美片网站yy | 欧美性久久久 | 99re国产 | 久久中文字幕在线视频 | 亚洲国产欧美一区二区三区丁香婷 | 久久久福利视频 | 99热这里只有精品久久 | 97色免费视频 | 999男人的天堂| 91欧美国产 | 狠狠狠狠狠狠天天爱 | 国产视频观看 | 激情在线网站 | 亚洲区视频在线观看 | 久久免费在线视频 | 亚洲 欧美 91 | 国产精品色视频 | 成人久久18免费网站图片 | av黄色免费网站 | 欧美精品一区二区蜜臀亚洲 | 国产精品三级视频 | 99在线精品视频 | 久草精品在线播放 | 精品国产一区二区久久 | 亚洲日本成人 | 国产精品久久久久久久午夜片 | 精品国偷自产在线 | 91精品一| 91精品国自产在线观看 | 一级黄色片在线免费观看 | 日韩免费一级电影 | 中文字幕视频观看 | 国内精品久久久久久久久久 | 黄色在线观看网站 | 顶级欧美色妇4khd | 久草免费在线视频观看 | 国产精品国产三级国产aⅴ入口 | 伊人永久 | 岛国一区在线 | 黄色一级在线观看 | 在线激情av电影 | 樱空桃av | 亚洲女欲精品久久久久久久18 | 手机在线小视频 | 中国一级片在线观看 | 一区二区欧美激情 | 国产免费观看高清完整版 | 中文永久免费观看 | 99精品免费久久久久久日本 | 国产999精品久久久久久绿帽 | 亚洲第一av在线播放 | 干干操操 | 免费在线播放视频 | 天天插天天干天天操 | 日韩视频a| av免费播放| 天天干视频在线 | 中文字幕九九 | 日韩在线激情 | 欧美a视频在线观看 | 久久夜色精品国产欧美乱极品 | 日本超碰在线 | 韩国av免费在线观看 | 日韩激情视频在线观看 | 久久久久黄 | 国产亚洲欧美精品久久久久久 | 国产一区二区久久精品 | 亚洲成人家庭影院 | 911久久 | 97在线观 | 中文字幕高清av | 久久综合九色欧美综合狠狠 | 丁香六月天婷婷 | 国产免费观看视频 | 国产98色在线 | 日韩 | 国产精品久久久久一区二区三区共 | 91久久人澡人人添人人爽欧美 | 国产精品久久久久久久99 | 国产高清永久免费 | 亚洲第一中文字幕 | 国产精品久久 | 91精品国产综合久久久久久久 | 国产在线高清精品 | 制服丝袜天堂 | 婷婷免费在线视频 | 国产日本三级 | 91精品国产乱码在线观看 | 香蕉影视app | 久久综合色8888 | 97在线观看免费高清 | 超级碰碰碰视频 | 亚洲天堂精品视频 | 日韩经典一区二区三区 | 亚洲天天做 | 日韩毛片在线免费观看 | 九九欧美视频 | 999成人国产| 国产精品18毛片一区二区 | 久草在线国产 | 日韩欧美高清免费 | 91精品无人成人www | 黄色免费网站下载 | av中文字幕在线免费观看 | 正在播放国产一区二区 | 日韩美女久久 | 日韩av电影中文字幕在线观看 | 99超碰在线观看 | 成av在线| 97超碰免费 | 国产成人综合在线观看 | 久久手机免费观看 | 成人av网址大全 | 国产精品精品国产 | 亚洲精品久久久久999中文字幕 | 成人欧美一区二区三区黑人麻豆 | 草久久久 | 国产伦精品一区二区三区无广告 | 日韩精品在线视频免费观看 | 日韩av免费观看网站 | 国产精品久久久久久久久免费看 | 久久成人福利 | 波多野结衣在线中文字幕 | 久久激五月天综合精品 | 日本高清免费中文字幕 | 国产精品影音先锋 | 人人爽人人爽人人片av免 | 亚洲国产精品999 | 免费亚洲视频在线观看 | 色婷在线| 射久久| 久久国产亚洲 | 国产性xxxx| 欧美成人a在线 | 欧美淫视频 | 天天夜夜操| 亚洲三级在线免费观看 | 成人午夜免费剧场 | 亚洲在线激情 | 日日夜夜91 | 国产精品2020| 精品影院| 欧美专区国产专区 | 国产精品美女视频 | 国产精品免费在线播放 | 中文字幕影片免费在线观看 | 久久精品国产免费看久久精品 | 免费一级片久久 | 黄色免费大片 | 五月婷社区| 极品中文字幕 | 一区精品久久 | 亚洲日韩欧美一区二区在线 | 久久久久欧美精品 | 欧美精品一区二区性色 | 亚洲综合色丁香婷婷六月图片 | 在线观看中文字幕 | 韩国一区在线 | 色欧美日韩 | 一区二区影院 | 国产aaa免费视频 | 五月婷婷六月丁香在线观看 | 国产精品成人一区二区 | 久久久久国产a免费观看rela | 亚洲精品国产精品国自产 | 久久免费国产精品 | 99国产精品一区二区 | 欧美一级日韩免费不卡 | 亚洲精品乱码久久久久久按摩 | 亚洲综合色网站 | 久久久久久久久久久久久久免费看 | 激情欧美一区二区三区免费看 | 福利网在线 | 色偷偷网站视频 | 国产免费作爱视频 | www五月天com | 亚洲一区精品人人爽人人躁 | 国产精品爽爽久久久久久蜜臀 | 国产综合在线视频 | 国产二区av | 手机在线欧美 | av三级av| 欧美日韩一区二区三区不卡 | 日韩在线免费高清视频 | 亚洲最新av在线 | 亚洲男男gaygay无套同网址 | 久久99久久久久 | 久久草草影视免费网 | 午夜精品一区二区三区在线观看 | 美女久久99| h文在线观看免费 | 免费观看福利视频 | 免费亚洲片 | 91精品人成在线观看 | 日韩在线观看视频中文字幕 | 丁香花五月 | 国产91在线观看 | 国产麻豆剧果冻传媒视频播放量 | 国产视频一区在线播放 | 91在线播放国产 | 香蕉视频啪啪 | 亚洲视频六区 | 在线精品视频免费播放 | 美女视频永久黄网站免费观看国产 | 欧美精品成人在线 | 亚洲第一色| 麻豆国产露脸在线观看 | 丁香久久婷婷 | 男女激情麻豆 | 日本免费一二三区 | 精品国产免费人成在线观看 | 国产高清在线 | 色瓜| 亚洲国产婷婷 | 亚洲欧美日韩在线看 | 久久久久成人精品亚洲国产 | 天天性天天草 | 亚洲最新毛片 | 美女网站在线观看 | 色偷偷888欧美精品久久久 | 综合天堂av久久久久久久 | 91在线亚洲 | 成人福利在线 | 欧美精品免费视频 | 国内精品亚洲 | 国产999精品久久久久久麻豆 | 欧美日韩国产在线观看 | 国产91av视频在线观看 | 亚洲精品网址在线观看 | 精品色综合 | 伊人色综合久久天天网 | 青青河边草免费直播 | 中文字幕在线观看免费高清电影 | 成人免费色 | 99精品视频免费 | 亚洲精品久久久蜜桃直播 | av成人动漫在线观看 | 在线观看的av | 日韩av二区| 国产一级电影在线 | 97国产精品免费 | 在线观看免费观看在线91 | 99久久久国产精品免费99 | 97视频入口免费观看 | 免费中文字幕在线观看 | 久草国产精品 | 日本中文字幕在线一区 | 国产精品免费不卡 | 超碰97公开 | 91精品国自产在线 | 成人毛片一区 | 在线观看网站黄 | 狠狠色噜噜狠狠狠 | 国产成人三级 | 91av视频在线观看 | 欧美成人视 | 久久视频热 | 日韩网站中文字幕 | 国产免费二区 | 草久视频在线 | 九九免费在线视频 | 中文字幕久久精品一区 | www.黄色小说.com| 一区二区三区四区在线免费观看 | 免费日韩在线 | 日韩av一区二区在线影视 | 国产一二三四在线观看视频 | av在线小说 | 超碰在线天天 | 狠狠躁18三区二区一区ai明星 | 国产精品一区二区三区在线播放 | 国产精品第十页 | 五月婷婷综合在线视频 | 婷婷丁香六月天 | 亚洲一区日韩在线 | 色欧美88888久久久久久影院 | 99国内精品 | 国产网站在线免费观看 | 天天舔夜夜操 | 欧美日韩一区二区三区在线免费观看 | 最近中文字幕在线 | 午夜精品视频一区二区三区在线看 | 五月天久久久久久 | 国产麻豆精品久久 | 在线观看免费一区 | 激情在线免费视频 | 成人久久精品视频 | 久久国产精品久久国产精品 | 女人18毛片a级毛片一区二区 | 伊人婷婷在线 | 国产精品久久久久久久99 | 成人国产精品久久久久久亚洲 | av免费观看网站 | 天天综合日日夜夜 | 日韩国产精品毛片 | 日韩精品一区二区三区中文字幕 | 99tvdz@gmail.com | 国产欧美精品在线观看 | 亚洲高清91 | 中文字幕在线观看网站 | 日韩专区 在线 | 91亚洲精品久久久久图片蜜桃 | 久久综合精品一区 | 成人网在线免费视频 | 视频一区二区在线观看 | 丁香九月婷婷综合 | 久久精品国产一区二区电影 | 婷婷.com| 麻豆观看 | 国产在线视频一区 | 久久五月婷婷综合 | 欧美日韩一区二区三区免费视频 | 伊人影院在线观看 | 免费一级片在线 | 日韩免费电影一区二区三区 | 国产精品福利久久久 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国内揄拍国产精品 | 欧美韩国日本在线 | 99r在线播放 | 欧美日韩亚洲在线观看 | 99视频精品免费观看, | 欧美最猛性xxxxx(亚洲精品) | 1024久久| 中文在线字幕免费观 | 嫩模bbw搡bbbb搡bbbb | 日本中文字幕网站 | 黄色一及电影 | 91精品秘密在线观看 | 精品亚洲男同gayvideo网站 | 欧美日韩综合在线观看 | 1024手机看片国产 | 亚洲欧洲国产精品 | 日韩欧美在线观看一区二区 | 日本乱视频 | 国产午夜三级一区二区三桃花影视 | 久久精品视频免费 | 久久精彩免费视频 | 综合久久网站 | 色久五月 | 国产精品亚 | 国产精品久久久久久久久蜜臀 | 性日韩欧美在线视频 | 国产一区二区久久精品 | 日韩天天操| 亚洲成av片人久久久 | 精品黄色在线 | 国产va精品免费观看 | 99视频精品在线 | 特级大胆西西4444www | 亚洲一区美女视频在线观看免费 | 波多野结衣亚洲一区二区 | 日韩久久电影 | 超碰激情在线 | 国产一区二区三区在线 | 西西大胆免费视频 | 久久成人国产精品 | 香蕉91视频 | 美女视频免费一区二区 | 亚洲在线综合 | 丁香六月婷婷开心 | 91在线免费视频 | 一级免费观看 | 在线观看黄a | 久久久久免费看 | 国内精品久久影院 | 九九免费在线观看 | 日韩色中色 | 深夜男人影院 | 久久久精品日本 | 久久伊人操 | 国产成人精品一区二 | 成人久久18免费网站图片 | 亚洲精品一区二区三区新线路 | 欧美激情视频在线免费观看 | 欧美日韩国内在线 | 69精品视频 | 久草久草在线观看 | 国产精品久久二区 | 久久黄色片 | 日韩欧美在线视频一区二区三区 | 久久综合狠狠 | 日韩一区二区三区高清在线观看 | 一区二区三区动漫 | 欧美一二区在线 | 干亚洲少妇| 免费精品| 天天爽天天爽夜夜爽 | 黄在线| 久草网视频在线观看 | 色综合a | 黄色大片入口 | 成人久久久久久久久久 | 综合精品久久久 | 亚洲精品美女免费 | 久久69精品久久久久久久电影好 | 一区在线电影 | 丁香六月天 | 极品久久久久久久 | 最新真实国产在线视频 | 久久艹在线观看 | 天天射天天干天天 | 亚洲精品黄 | 午夜精品视频一区二区三区在线看 | 91cn国产在线 | 亚洲在线视频免费观看 | 亚洲精品视频免费观看 | 四虎最新入口 | 最新av中文字幕 | 亚洲精品国产高清 | 国产精品美女久久久久久久久 | 人九九精品 | 青草视频免费观看 | 国产成年人av | 亚洲午夜久久久久久久久久久 | 婷婷5月色 | 亚洲一区二区三区四区精品 | 波多野结衣视频在线 | 国产成人av一区二区三区在线观看 | 福利视频 | 亚洲欧美怡红院 | 在线观看精品国产 | 手机看片福利 | 黄色三级视频片 | 欧美黑人xxxx猛性大交 | 国产精品久久综合 | 色91av| 国产永久免费观看 | 天天天天爱天天躁 | 亚洲视频免费 | 精品一区电影 | 欧美精品久久久久久久久老牛影院 | 黄色大片国产 | 亚洲日本韩国一区二区 | 97成人在线视频 | 色老板在线 | 精品亚洲在线 | 在线视频一二区 | 免费看片成年人 | 国产一区欧美日韩 | 一区二区三区四区五区六区 | 久久午夜免费视频 | 国产精品s色 | 九九热在线精品视频 | 波多野结衣在线视频一区 | 国产这里只有精品 | 精品国产一区二区三区久久 | 在线视频婷婷 | 91成人在线视频 | 91免费看黄 | 在线观看中文字幕dvd播放 | 亚洲欧洲精品一区二区精品久久久 | 成人av电影免费在线播放 | 黄色特级片 | 91在线看 | 国产区精品视频 | 香蕉蜜桃视频 | av免费看在线 | 久久综合婷婷国产二区高清 | 色偷偷人人澡久久超碰69 | 99一区二区三区 | 国产看片 色 | 成人久久网 | 国产伦理精品一区二区 | 国产一区二区三区免费在线 | 成人欧美在线 | 久久综合色天天久久综合图片 | 91丨九色丨勾搭 | 国产在线一区二区 | www四虎影院 | 狠狠色狠狠色终合网 | 99国产在线 | 成人一级在线 | 国产69久久久欧美一级 | 国产精品成 | 久久久91精品国产一区二区三区 | 久草精品网| 亚洲欧美视频一区二区三区 | 麻豆视频网址 | 婷婷久久丁香 | 激情av在线播放 | 在线看日韩av | 五月婷婷综合色拍 | 99这里只有精品视频 | 欧美粗又大 | 日韩av一区二区三区 | 最近中文字幕久久 | 狠狠操天天射 | 国产区av在线 | www黄免费 | 欧美在线视频一区二区 | 国产美女在线精品免费观看 | 99久久精品网 | 狠狠色丁香婷婷综合橹88 | 日韩免费在线视频 | 韩国av一区二区三区 | 欧美久久久久久久久久久 | 日韩美女免费线视频 | 免费视频久久久久 | 国产精品国产三级国产aⅴ9色 | 亚洲高清免费在线 | 成年人在线看视频 | 麻豆91精品91久久久 | 中文字幕美女免费在线 | 亚洲精品久久久久久久蜜桃 | 久久久天天操 | 国产乱老熟视频网88av | 成人h视频在线 | 久久久久免费电影 | 超碰精品在线观看 | 在线观看国产v片 | 中文视频在线看 | 午夜久久久久久久久久影院 | 大型av综合网站 | 天天狠狠操 | 国产在线精 | 国产精品21区 | 亚洲天堂精品视频在线观看 | 亚洲香蕉视频 | www.日日日.com | 久久精品一区二区三 | 狠狠操影视 | 日韩一区正在播放 | 懂色av一区二区在线播放 | 91日韩在线视频 | 国产精品岛国久久久久久久久红粉 | 99久久精品费精品 | 一级全黄毛片 | 国产一区二区在线观看视频 | 在线播放91| 激情综合五月天 | 黄色小说免费在线观看 | 日韩一级电影在线 | 国产一级特黄电影 | 91香蕉视频黄色 | 欧美另类性 | 欧日韩在线视频 | 国产精品久久久久久电影 | 久久99精品一区二区三区三区 | 麻豆91在线看 | 国产成人久久久久 | 亚洲一区二区三区毛片 | 美女视频一区 | 亚洲无在线 | 干天天 | 999免费视频 | 国产精品99久久久久久有的能看 | 国产精品久久久影视 | 色香蕉在线视频 | 国产成人精品一区二区三区福利 | 色天天| 97品白浆高清久久久久久 | 亚州天堂 | 99 久久久久 | 激情欧美丁香 | 亚洲第一中文字幕 | 国产成人在线观看 | 婷婷激情在线 | 91麻豆精品国产91久久久无需广告 | 99在线观看精品 | 在线观看播放av | 日韩精品中文字幕在线观看 | 一区二区观看 | 欧美日韩视频在线一区 | 欧美日韩网站 | 午夜影视av| 日韩av进入 | 久久免费视频6 | 国产免费观看久久 | 天堂va在线高清一区 | 毛片基地黄久久久久久天堂 | 欧美成人91| 久久看片 | 亚洲天天摸日日摸天天欢 | 五月婷婷色综合 | 波多野结衣在线播放一区 | 日韩视频免费在线观看 | av网址最新| 麻豆国产精品永久免费视频 | 三上悠亚一区二区在线观看 | 97av精品| 天天拍夜夜拍 | 国产高清视频网 | www.狠狠干| 五月天丁香亚洲 | 日本少妇高清做爰视频 | 亚洲精品毛片一级91精品 | 国产91在线播放 | 午夜精品福利一区二区三区蜜桃 | 九9热这里真品2 | 久久不见久久见免费影院 | 精品五月天 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲日本黄色 | 国产精品入口麻豆www | 伊人国产在线播放 | 欧美一区中文字幕 | 亚洲黄色免费在线看 | 日韩综合第一页 | 网址你懂的在线观看 | 日韩精品首页 | 操操操操网| 精品国产乱码久久久久久浪潮 | 天天艹天天操 | 亚洲成人午夜在线 | 91久久丝袜国产露脸动漫 | 色婷婷狠狠18 | 欧美黑吊大战白妞欧美 | 欧美淫视频 | 天天综合天天做天天综合 | 免费福利视频网站 | 黄色大片av | 日韩性片| 亚洲国产精品久久久久久 | 久草视频在 | 最近更新中文字幕 | 国产午夜精品一区二区三区 | 久久精品观看 | www久| 91久久久久久久一区二区 | 在线观看中文字幕第一页 | 免费看一级片 | av片在线观看免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 在线免费观看av网站 | 久久综合狠狠综合久久激情 | 一级黄色片在线 | 在线视频黄 | 在线免费观看麻豆 | 中文字幕在线视频一区二区三区 | 日韩免费不卡av | 日韩精品在线视频免费观看 | 97碰碰视频 | 天天操天天操天天操 | 伊人中文在线 | 国产黄色大全 | 在线观看一区二区精品 | 中文字幕成人一区 | 日本中文字幕在线播放 | 欧美性生活大片 | 久久dvd | 亚洲视频在线观看 | 国产免费影院 | 免费黄色小网站 | www.com在线观看 | 夜夜躁日日躁狠狠久久av | 区一区二区三区中文字幕 | 免费裸体视频网 | 免费看污污视频的网站 | 伊人久久婷婷 | 日韩一级理论片 | 亚洲资源在线网 | 亚洲综合激情 | 制服丝袜在线 | 国产破处在线视频 | 麻豆综合网 | 中文在线www | 国产一级免费视频 | 天天干天天操天天操 | 成人免费视频视频在线观看 免费 | 亚洲欧美国产精品久久久久 | 深夜视频久久 | 视频一区二区三区视频 | 国产尤物在线 | 97偷拍视频 | 国产视频美女 | 日韩久久激情 | 国产精品毛片一区二区 | 最近中文字幕国语免费av | 中文字幕a∨在线乱码免费看 | 99视频在线精品国自产拍免费观看 | 国产成人精品女人久久久 | 狠狠狠色丁香综合久久天下网 | 国产精品一区欧美 | 激情网在线视频 | 免费视频在线观看网站 | 999久久国精品免费观看网站 | 亚洲精品视频在线播放 | 在线观看av中文字幕 | 在线观看黄色大片 | 欧美日韩精品在线观看视频 | 精品无人国产偷自产在线 | 综合婷婷丁香 | 久久久精品久久日韩一区综合 | 国产高h视频 | 超碰免费成人 | 亚洲 欧美 国产 va在线影院 | 奇米7777狠狠狠琪琪视频 | 欧美精品一区二区蜜臀亚洲 | 国产精品一区在线 | 美女精品在线 | 欧美一区二区三区在线播放 | 人人爽久久久噜噜噜电影 | 欧美成人性战久久 | 丁香九月激情综合 | 亚洲精品午夜久久久 | 日韩视频图片 | 国产成人精品999在线观看 | 亚洲精品国产精品乱码在线观看 | 99re中文字幕| 国产黄色在线观看 | 国产精品福利在线播放 | 国产精品久久久免费看 | 国产糖心vlog在线观看 | 91久久久久久久 | 亚洲理论影院 | 久久综合国产伦精品免费 | 911亚洲精品第一 | 亚洲精品国产精品乱码在线观看 | 国产美腿白丝袜足在线av | 粉嫩高清一区二区三区 | 999抗病毒口服液 | 久久精品视频一 | 国产剧情一区二区在线观看 | 亚洲色影爱久久精品 | 国产精品日韩久久久久 | 亚洲国产精品传媒在线观看 | 成人免费看片98欧美 | avlulu久久精品 | 久久经典国产视频 | 成人一区二区三区在线 | 国语自产偷拍精品视频偷 | 日韩字幕| 国偷自产中文字幕亚洲手机在线 | 夜色.com| av在线免费观看黄 | 五月综合在线观看 | 麻豆播放 | www.黄色小说.com | 91成人精品 | 国产精品久久久久久69 | 国产精品 日韩 | 久草在线播放视频 | 91看片一区二区三区 | 精品国产三级 | 2019中文字幕第一页 | 狠狠色丁香婷婷综合最新地址 | 精品国产精品久久一区免费式 | 久久精品视频播放 | 久久久久久久久久亚洲精品 | 一区二区精品在线视频 | 成人亚洲精品国产www | 中文字幕日本在线观看 | 激情电影在线观看 | 福利视频一区二区 | 国产日产欧美在线观看 | 亚洲人成人天堂h久久 | 日韩中文字幕一区 | 久久你懂得 | 免费看片在线观看 | 日韩欧美视频在线免费观看 | 字幕网在线观看 | 亚洲视频精品 | 男女激情片在线观看 | 99这里精品| 国产九色在线播放九色 | 日韩免费网址 | 国产美女精品在线 | 久久久久久久久久久高潮一区二区 | 四虎成人免费观看 | 丝袜美腿亚洲综合 | 99色免费视频 | 欧美精品免费在线观看 | 久福利 | 麻豆一区二区三区视频 | 国产原创在线观看 | 亚洲网站在线 | 亚洲九九精品 | 久久久久久久久艹 | 在线日韩亚洲 | 亚洲综合精品在线 | 精品国产一二区 | 国产精品久久久av | 中文字幕一区二区三区乱码在线 | 欧美a级片免费看 | 婷婷丁香在线观看 | 日日碰狠狠躁久久躁综合网 | 亚洲国产精品一区二区尤物区 | 1024手机在线看 | 三级av网| 久久影院一区 | 国内小视频在线观看 | 久久成人一区 | 伊人婷婷激情 | 国产午夜精品一区二区三区四区 | 一区二区在线电影 | 国内成人av | 玖玖玖精品 | 国产香蕉97碰碰碰视频在线观看 | 亚洲欧美va | 97在线视频免费 | 国产日产精品一区二区三区四区的观看方式 | 中文字幕成人av | 97电影在线看视频 | 国产免费资源 | 免费av的网站 | 国产视频精品免费播放 | 狠狠狠色丁香婷婷综合激情 | 天天操天天干天天干 | 91精品国产高清 | 一区二区三区免费在线 | 精品一区二区av | 久久综合福利 | 中文字幕二区 | 天天搞天天 | 免费av在| 久久视频网址 | 亚洲在线视频免费 | 欧美日韩亚洲精品在线 | 中文字幕影片免费在线观看 | 国产精品69久久久久 | 国产色女人 | 午夜精品视频一区二区三区在线看 | 日本夜夜草视频网站 | 久久精品影片 | 97视频在线观看成人 | 国产精品五月天 | 欧美午夜理伦三级在线观看 | 日韩欧美久久 | 欧美国产视频在线 | 欧美在线观看视频一区二区 | www.五月天婷婷 | 日韩在线| 欧美另类一二三四区 | 91免费看黄 | 免费av大片 | 又黄又爽的免费高潮视频 | 亚州激情视频 | av片无限看 | 韩日电影在线 | 播五月综合 | 最近久乱中文字幕 | 国产一区二区三区在线免费观看 | 亚洲人在线视频 | 中文字幕亚洲国产 | 又粗又长又大又爽又黄少妇毛片 | 国产一区二区不卡视频 | 久久久精品午夜 | av综合av| 人人澡澡人人 | 人人爱夜夜操 | av免费在线观看1 | 五月天综合激情网 | 天天射网 | 久草视频在线免费 | 午夜免费久久看 | av大全在线免费观看 | 丝袜+亚洲+另类+欧美+变态 | 中文字幕视频在线播放 | 欧美性生活免费看 | 在线播放亚洲激情 | 精品国产伦一区二区三区观看方式 | 久久久久国产免费免费 | www.国产精品 | 色婷婷激情网 | 成人午夜电影在线播放 | 天天草天天草 | 日韩av电影网站在线观看 | 久久伊99综合婷婷久久伊 | 成人黄性视频 | 久久久久久蜜桃一区二区 | 久久www免费视频 | 亚欧日韩成人h片 | 五月开心婷婷 | 日本巨乳在线 | 欧美精品久 | 日韩中文幕 | 国产一级二级在线播放 | 国产精品区一区 | 国产福利91精品张津瑜 | 国产一区二区在线播放视频 | 麻豆精品传媒视频 | 色婷婷综合久久久久中文字幕1 | 中文字幕资源网在线观看 | 波多在线视频 | 成年人在线观看视频免费 | 97在线观视频免费观看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产小视频网站 | 久久精品视频在线看 | 国产视频日韩视频欧美视频 | 一区免费观看 | 在线性视频日韩欧美 | 国色天香永久免费 | 中文字幕一区二区在线观看 | 亚洲黄色高清 | 最新高清无码专区 | 国产在线视频导航 | 韩国在线一区二区 | 国产精品国产亚洲精品看不卡 | 亚洲一一在线 | 日韩精品一区二区三区中文字幕 | 国产视频一区在线 | 国产高清专区 | 永久免费视频国产 | 一区二区视频播放 | 国产在线理论片 | www在线观看视频 | 日韩国产欧美在线播放 | 波多野结衣理论片 | 精品国产一区二区三区久久久蜜臀 | 欧美激情视频一二区 | 日韩在线播放av | 91爱爱中文字幕 | 日韩精品视频一二三 | 黄色特级一级片 | 91视频久久久久久 | 精品一二三四在线 | 国产99久久久久 | 国产精品久久久久国产精品日日 | 在线一二三区 | 国产精品理论在线观看 | 日韩色区| 国产最新在线观看 | 美女网站视频色 | 国产一区在线播放 | 中文字幕免费观看全部电影 | 色999精品| 色婷婷一| 国产伦精品一区二区三区在线 | av在线播放网址 | 欧美激情va永久在线播放 | 久久不卡av | 91成版人在线观看入口 | 亚洲综合在线五月 | 三级小视频在线观看 | 国产视频美女 | 国产99在线免费 | 婷婷色亚洲 | 丁香伊人网 | 手机在线免费av | 黄网站色欧美视频 | 精品国产视频一区 | 国产 日韩 中文字幕 | 樱空桃av | 中文字幕 国产视频 | 精品一二 | 日本精品视频网站 | 国产资源av | 波多野结衣电影一区二区三区 | 久久美女免费视频 | 欧美日韩伦理在线 | 日韩午夜电影院 | 91av在线播放视频 | 狠狠撸电影 | 亚洲欧美综合精品久久成人 | 亚洲电影成人 | 狠狠干夜夜操天天爽 | 中文字幕网址 | 美女网站视频免费都是黄 | 日本中文乱码卡一卡二新区 | 在线小视频你懂的 | 免费观看一区二区三区视频 | 免费成人黄色 | 亚洲国产高清在线观看视频 | 在线观看视频99 | 亚洲男男gaygay无套同网址 | 国产亚洲资源 | 粉嫩av一区二区三区四区在线观看 | 麻豆视频在线免费看 | 国产黄色美女 | 亚洲精品99久久久久久 | 亚洲黄色区| 一本一本久久a久久精品综合妖精 | 精品国产伦一区二区三区观看体验 | 中文字幕制服丝袜av久久 | 伊人伊成久久人综合网站 | 免费av福利 | 国产精品久久久777 成人手机在线视频 | 亚洲国内精品视频 | 2019中文字幕网站 | 黄色av一级| 久久精品看| 久久久免费视频播放 | 四虎成人免费影院 | 91香蕉亚洲精品 | 国产资源在线免费观看 | 欧美色精品天天在线观看视频 | 人人躁| 国产一区二区久久 | 国产精品九九久久久久久久 | 国产精品久久久久久久毛片 | 伊人婷婷网 | 国产福利中文字幕 | 97超碰香蕉| av色综合| 曰韩在线 |