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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XMNetworking 网络库的设计与使用

發布時間:2024/4/13 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XMNetworking 网络库的设计与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

XMNetwoking 是我們團隊開源的一個網絡庫,詳見:GitHub

XMNetworking 是一個輕量的、簡單易用但功能強大的網絡庫,基于 AFNetworking 3.0 封裝。
其中,XM 前綴是我們團隊 Xcode-Men 的縮寫。英文文檔

簡介

XMNetworking.png

如上圖所示,XMNetworking 采用中心化的設計思想,由 XMCenter 統一發起并管理所有的 XMRequest 請求,并可通過 XMCenter 給所有請求配置回調線程、公共 Server URL、Header、Parameter 等信息,同時也可以 Block 注入的方式實現自定義的響應結果處理邏輯,如數據模型轉換、業務錯誤碼判斷、網絡緩存等。另外增加了 XMEgine 這一層是為了隔離底層第三方庫依賴,便于以后切換其他底層網絡庫或自己實現底層邏輯。

特性

  • 簡單易用,發送請求只需調用一個方法,通過 Block 配置信息,代碼緊湊;
  • 功能強大,適用于幾乎所有的網絡請求使用場景(普通請求、上傳、下載);
  • 專為 RESTful Server API 設計,并提供多種不同的請求和響應的序列化類型;
  • 支持批量請求、鏈式請求等復雜業務邏輯的網絡需求;
  • 可隨時取消未完成的網絡請求,支持自動重試失敗的請求;
  • 全局配置所有請求的公共信息,自定義回調線程以及響應處理邏輯;
  • 支持檢查網絡連接類型,并集成 AFNetworking 強大的安全策略模塊。

系統要求

  • iOS 7.0 以上系統
  • Xcode 7.3 或更高版本

安裝說明

CocoaPods

在你工程的 Podfile 文件中添加如下一行,并執行 pod install 或 pod update。

pod 'XMNetworking'

注意: XMNetworking 已經包含了 AFNetworking 3.1.0 的源代碼,所以你工程里的 Podfile 文件不能再添加 pod AFNetworking 去導入 AFNetworking,否則會有沖突!

Carthage (只支持 iOS 8+)

與 CocoaPods 不同的是,Carthage 是一個去中心化的第三方依賴庫管理工具,它自動幫你編譯所依賴的第三方庫并以 framework 形式提供給你。

你可以通過 Homebrew 執行以下命令來安裝 Carthage:

$ brew update $ brew install carthage

成功安裝完 Carthage 后,在你工程的 Cartfile 文件中添加如下一行:

github "kangzubin/XMNetworking"

然后執行 carthage update --platform ios 命令生成 framework 包,并把生成的 XMNetworking.framework 拖拽到你的工程中。

注意: XMNetworking 已經包含了 AFNetworking 3.1.0 的源代碼,所以你無需通過 Carthage 生成 AFNetworking.framework 導到你工程中,否則會有沖突!

手動安裝

下載 XMNetworking 子文件夾的所有內容,并把其中的源文件添加(拖放)到你的工程中。

使用教程

頭文件的導入

  • 如果是通過 CocoaPods 或 Carthage 安裝,則:
#import <XMNetworking/XMNetworking.h>
  • 如果是手動下載源碼安裝,則:
#import "XMNetworking.h"

全局網絡配置

[XMCenter setupConfig:^(XMConfig *config) {config.generalServer = @"general server address";config.generalHeaders = @{@"general-header": @"general header value"};config.generalParameters = @{@"general-parameter": @"general parameter value"};config.generalUserInfo = nil;config.callbackQueue = dispatch_get_main_queue(); #ifdef DEBUGconfig.consoleLog = YES; #endif }];

你可以調用 XMCenter 的 +setupConfig: 類方法,通過修改傳入的 XMConfig 對象來配置全局網絡請求的公共信息,包括如下:

  • generalServer: 公共服務端地址,如果一個 XMRequest 請求對象的 server 屬性為 nil,且其 useGeneralServer 為 YES(默認),那么該請求的服務端地址 server 將會取 XMCenter 中 generalServer 的值。
  • generalParameters: 公共請求參數,如果一個 XMRequest 請求對象的 useGeneralParameters 屬性為 YES(默認),并且 XMCenter 的公共參數 generalParameters 不為空,那么這些公共參數會自動加到該請求的 parameters 中。
  • generalHeaders: 公共請求頭,如果一個 XMRequest 請求對象的 useGeneralHeaders 屬性為 YES(默認),并且 XMCenter 的公共請求頭 generalHeaders 不為空,那么這些公共請求頭會自動加到該請求的 headers 中。
  • generalUserInfo: 公共用戶信息,默認為 nil,如果一個 XMRequest 請求對象的 userInfo 屬性為 nil(默認)而該字段不為 nil,那么該字段會自動賦值給 XMRequest 對象的 userInfo。而 userInfo 屬性可用于區分具有相同上下文信息的不同請求。
  • callbackQueue: 請求的回調 Block 執行的 dispatch 隊列(線程),如果為 NULL(默認),那么會在一個私有的并發隊列(子線程)中執行回調 Block。
  • consoleLog: 一個 BOOL 值,用于表示是否在控制臺輸出請求和響應的信息,默認為 NO。

另外,你可以通過調用 XMCenter 的以下兩個類方法來隨時修改全局公共的 header 和 parameter:

+ (void)setGeneralHeaderValue:(nullable NSString *)value forField:(NSString *)field; + (void)setGeneralParameterValue:(nullable NSString *)value forKey:(NSString *)key;

普通請求

GET

[XMCenter sendRequest:^(XMRequest *request) {request.url = @"http://example.com/v1/foo/bar";//request.server = @"http://example.com/v1/";//request.api = @"foo/bar";request.parameters = @{@"param1": @"value1", @"param2": @"value2"};request.headers = @{@"User-Agent": @"Custom User Agent"};request.httpMethod = kXMHTTPMethodGET; } onSuccess:^(id responseObject) {NSLog(@"onSuccess: %@", responseObject); } onFailure:^(NSError *error) {NSLog(@"onFailure: %@", error); } onFinished:^(id responseObject, NSError *error) {NSLog(@"onFinished"); }];

注意1:可以通過以下兩種方法設置一個請求對象的 URL 地址,但當 server、api 和 url 三個屬性被同時賦值時,url 的優先級比較高,而此時 server、api 的值會被忽略。

request.url = @"http://example.com/v1/foo/bar"; // 如果 request.server 為 `nil`,且 request.useGeneralServer 為 `YES`,那么此時 request.server 會取 XMCenter.generalServer 的值。 request.server = @"http://example.com/v1/"; request.api = @"foo/bar";

注意2:一個請求對象的回調 Block (success/failure/finished/progress) 是非必需的(默認為 nil),XMCenter 提供了多個設置不同回調 Block 參數的方法用于發送請求。另外,需要注意的是,success/faillure/finished 等回調 Block 會在 XMCenter 設置的 callbackQueue 隊列中被執行,但 progress 回調 Block 將在 NSURLSession 自己的隊列中執行,而不是 callbackQueue。

POST

[XMCenter sendRequest:^(XMRequest *request) {//request.server = @"http://example.com/v1/"; // 可選,如果為空則讀取 XMCenter.generalServerrequest.api = @"foo/bar";request.parameters = @{@"param1": @"value1", @"param2": @"value2"};request.httpMethod = kXMHTTPMethodPOST; // 可選,默認為 `POST`request.requestType = kXMRequestNormal; // 可選,默認為 `Normal` } onSuccess:^(id responseObject) {NSLog(@"onSuccess: %@", responseObject); } onFailure:^(NSError *error) {NSLog(@"onFailure: %@", error); }];

其他 HTTP 方法

XMRequest 同樣支持其他 HTTP 方法,比如:HEAD, DELETE, PUT, PATCH 等,使用方式與上述類似,不再贅述。

詳見 XMConst、XMRequest 和 XMCenter 等幾個文件中的代碼和注釋。

上傳請求

// `NSData` form data. UIImage *image = [UIImage imageNamed:@"testImage"]; NSData *fileData1 = UIImageJPEGRepresentation(image, 1.0); // `NSURL` form data. NSString *path = [NSHomeDirectory() stringByAppendingString:@"/Documents/testImage.png"]; NSURL *fileURL2 = [NSURL fileURLWithPath:path isDirectory:NO];[XMCenter sendRequest:^(XMRequest *request) {request.server = @"http://example.com/v1/";request.api = @"foo/bar";request.requestType = kXMRequestUpload;[request addFormDataWithName:@"image[]" fileName:@"temp.jpg" mimeType:@"image/jpeg" fileData:fileData1];[request addFormDataWithName:@"image[]" fileURL:fileURL2];// see `XMUploadFormData` for more details. } onProgress:^(NSProgress *progress) {// the progress block is running on the session queue.if (progress) {NSLog(@"onProgress: %f", progress.fractionCompleted);} } onSuccess:^(id responseObject) {NSLog(@"onSuccess: %@", responseObject); } onFailure:^(NSError *error) {NSLog(@"onFailure: %@", error); } onFinished:^(id responseObject, NSError *error) {NSLog(@"onFinished"); }];

下載請求

[XMCenter sendRequest:^(XMRequest *request) {request.url = @"http://example.com/v1/testDownFile.zip";request.downloadSavePath = [NSHomeDirectory() stringByAppendingString:@"/Documents/"];request.requestType = kXMRequestDownload; } onProgress:^(NSProgress *progress) {// the progress block is running on the session queue.if (progress) {NSLog(@"onProgress: %f", progress.fractionCompleted);} } onSuccess:^(id responseObject) {NSLog(@"onSuccess: %@", responseObject); } onFailure:^(NSError *error) {NSLog(@"onFailure: %@", error); }];

序列化

XMRequest 中有兩個屬性 requestSerializerType 和 responseSerializerType 分別用于設置請求參數和響應結果的序列化類型。

其中,XMRequestSerializerType 和 XMResponseSerializerType 枚舉的定義如下:

typedef NS_ENUM(NSInteger, XMRequestSerializerType) {kXMRequestSerializerRAW = 0, // defaultkXMRequestSerializerJSON = 1,kXMRequestSerializerPlist = 2, }; typedef NS_ENUM(NSInteger, XMResponseSerializerType) {kXMResponseSerializerRAW = 0,kXMResponseSerializerJSON = 1, // defaultkXMResponseSerializerPlist = 2,kXMResponseSerializerXML = 3, };

詳見 AFURLRequestSerialization.h 和 AFURLResponseSerialization.h 獲取更多細節。

自定義響應結果的處理邏輯

通常地,一個請求成功結束時,會執行 success block,當有錯誤發生時,執行 failure block。然而,開發中更常見的情況是,即使是一個請求成功結束,我們也需要進一步處理,比如驗證響應結果數據、判斷與服務端商量好的業務錯誤碼類型等,再決定執行 success block 還是 failure block。

現在,你可以調用 [XMCenter setResponseProcessBlock:...] 方法以 Block 注入的方式設置自定義的處理邏輯,當請求成功結束時,這個 Block 會在 success block 被執行前調用,如果傳入 *error 參數被賦值,則接下來會執行 failure block。

[XMCenter setResponseProcessBlock:^(XMRequest *request, id responseObject, NSError *__autoreleasing *error) {// 自定義響應結果處理邏輯,如果 `*error` 被賦值,則接下來會執行 failure block。 }];

批量請求

XMNetworking 支持同時發一組批量請求,這組請求在業務邏輯上相關,但請求本身是互相獨立的,success block 會在所有請求都成功結束時才執行,而一旦有一個請求失敗,則會執行 failure block。注:回調 Block 中的 responseObjects 和 errors 中元素的順序與每個 XMRequest 對象在 batchRequest.requestArray 中的順序一致。

[XMCenter sendBatchRequest:^(XMBatchRequest *batchRequest) {XMRequest *request1 = [XMRequest request];request1.url = @"server url 1";// set other properties for request1XMRequest *request2 = [XMRequest request];request2.url = @"server url 2";// set other properties for request2[batchRequest.requestArray addObject:request1];[batchRequest.requestArray addObject:request2]; } onSuccess:^(NSArray<id> *responseObjects) {NSLog(@"onSuccess: %@", responseObjects); } onFailure:^(NSArray<id> *errors) {NSLog(@"onFailure: %@", errors); } onFinished:^(NSArray<id> *responseObjects, NSArray<id> *errors) {NSLog(@"onFinished"); }];

[XMCenter sendBatchRequest:...] 方法會返回剛發起的新的 XMBatchRequest 對象,你可以保存這個對象,并在必要的時候調用它的 -cancelWithBlock: 方法取消這組批量請求。

鏈式請求

XMNetworking 同樣支持發一組鏈式請求,這組請求之間互相依賴,下一請求是否發送以及請求的參數取決于上一個請求的結果,success block 會在所有的鏈式請求都成功結束時才執行,而中間一旦有一個請求失敗,則會執行 failure block。注:回調 Block 中的 responseObjects 和 errors 中元素的順序與每個鏈式請求 XMRequest 對象的先后順序一致。

[XMCenter sendChainRequest:^(XMChainRequest *chainRequest) {[[[[chainRequest onFirst:^(XMRequest *request) {request.url = @"server url 1";// set other properties for request}] onNext:^(XMRequest *request, id responseObject, BOOL *sendNext) {NSDictionary *params = responseObject;if (params.count > 0) {request.url = @"server url 2";request.parameters = params;} else {*sendNext = NO;}}] onNext:^(XMRequest *request, id responseObject, BOOL *sendNext) {request.url = @"server url 3";request.parameters = @{@"param1": @"value1", @"param2": @"value2"};}] onNext: ...]; } onSuccess:^(NSArray<id> *responseObjects) {NSLog(@"onSuccess: %@", responseObjects); } onFailure:^(NSArray<id> *errors) {NSLog(@"onFailure: %@", errors); } onFinished:^(NSArray<id> *responseObjects, NSArray<id> *errors) {NSLog(@"onFinished"); }];

[XMCenter sendChainRequest:...] 方法會返回剛發起的新的 XMChainRequest 對象,你可以保存這個對象,并在必要的時候調用它的 -cancelWithBlock: 方法取消這組鏈式請求。

取消一個網絡請求

當調用 [XMCenter sendRequest:...] 方法發送一個網絡請求時,該方法會返回一個用于唯一標識該請求對象的 identifier(如果請求發送失敗,該值為 0)。在必要的時候,你可以通過這個 identifier 來取消當前網絡請求(如果一個請求已經結束,這時再用 identifier 來取消該請求時,會直接忽略)。

// send a request NSUInteger identifier = [XMCenter sendRequest:^(XMRequest *request) {request.server = @"https://kangzubin.cn/";request.api = @"test/index.php";request.httpMethod = kXMHTTPMethodGET;request.timeoutInterval = 10;request.retryCount = 1; } onFailure:^(NSError *error) {NSLog(@"onFailure: %@", error); }];// your business code sleep(2);// cancel the running request by identifier with cancel block [XMCenter cancelRequest:identifier onCancel:^(XMRequest *request) {NSLog(@"onCancel"); }];

注意:調用 XMCenter cancelRequest:onCancel: 方法取消一個網絡請求時,被取消的請求對象(如果存在)會以參數的形式傳給 cancel block,另外 cancel block 是在當前調用 cancelRequest: 方法的線程中執行,并不是 XMCenter 的 callbackQueue。

網絡可連接性檢查

我們提供了兩種方法用于獲取網絡的可連接性,分別如下:

[XMCenter isNetworkReachable]; // 該方法會返回一個 Bool 值用于表示當前網絡是否可連接。 [[XMEngine sharedEngine] networkReachability]; // 該方法會返回一個當前網絡的狀態值,-1 表示 `Unknown`,0 表示 `NotReachable,1 表示 `WWAN`,2 表示 `WiFi`

詳見 AFNetworkReachabilityManager 獲取更多細節.

HTTPS 請求的本地證書校驗(SSL Pinning)

在你的應用程序包里添加 (pinned) 相應的 SSL 證書做校驗有助于防止中間人攻擊和其他安全漏洞。非常方便的是,AFNetworking 的 AFSecurityPolicy 安全模塊可以通過校驗本地保存的證書或公鑰幫助我們評估服務器是否可信任以及建立安全連接。

我們在 XMEngine 中暴露了一個 AFHTTPSessionManager 對象叫 sessionManager,你可以通過修改該對象的 securityPolicy 類型,以開啟 SSL Pinning 功能,并把你們服務器對應的 .cer 證書或者公鑰放到你的工程中。

[XMEngine sharedEngine].sessionManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

詳見 AFSecurityPolicy 獲取更多細節.

文檔

詳見 XMNetworking Documents Link.

結構

XMNetworking 的代碼結構非常簡潔和緊湊,只包含了 4 個核心文件:XMConst.h 用于定義全局常量枚舉和 Block,XMRequest,XMCenter 和 XMEngine 則是核心類的聲明和實現,具體的代碼結構如下圖所示:

Architecture.png

待完善

  • 支持斷點下載
  • 支持網絡層緩存
  • 兼容測試支持 tvOS/watchOS/OS X
  • 更加強大的自定義模型轉換
  • 實現一套可擴展的插件機制,便于 XMNetworking 增加新功能

作者

  • Zubin Kang

貢獻者

  • southpeak
  • Xcode-Men Team

許可證

XMNetworking 使用 MIT 許可證,詳情見 LICENSE 文件。


?

文/XcodeMen(簡書作者)
原文鏈接:http://www.jianshu.com/p/a5c5e9aa5913

轉載于:https://my.oschina.net/u/2345393/blog/810373

總結

以上是生活随笔為你收集整理的XMNetworking 网络库的设计与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

又黄又刺激的视频 | 激情五月婷婷 | 日韩精品极品视频 | 久久99亚洲精品久久久久 | 狠狠的日 | 99热这里只有精品免费 | 日韩在线观看a | 婷婷丁香六月天 | 久久久久久久久免费视频 | 日韩欧美在线不卡 | 黄色亚洲在线 | 99riav1国产精品视频 | 在线观看视频h | 91三级在线观看 | 韩国av免费观看 | 99精品一区 | 五月婷婷另类国产 | 综合精品久久久 | av观看免费在线 | 日韩欧美在线高清 | 免费看黄网站在线 | 久久国产成人午夜av影院宅 | 91亚洲精品乱码久久久久久蜜桃 | 色婷婷久久久综合中文字幕 | 久久精品草 | 国产高清亚洲 | 久久国产热 | 一区二区中文字幕在线 | 国产欧美高清 | 国产字幕在线播放 | 波多野结衣综合网 | 成人黄色在线电影 | 99久精品 | 久久久久久久久久久久久久电影 | 午夜精品久久 | 精品在线视频观看 | 99爱国产精品 | 国产99久久久国产 | 亚洲综合欧美激情 | 日韩日韩日韩日韩 | 日韩欧美国产精品 | 天天操夜夜叫 | 亚洲不卡av一区二区三区 | 国产精品成人久久久久 | 国产一区二区免费看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 精品在线免费视频 | 丁香婷婷网 | 成年人在线观看免费视频 | 99久久日韩精品免费热麻豆美女 | 免费日韩一区 | 国产无限资源在线观看 | 91高清不卡 | 国产精品久久久99 | 久久精品8 | 久久理论视频 | 亚洲精品伦理在线 | 国产精品免费在线 | 国产精品福利在线 | 国产精品国产亚洲精品看不卡15 | 一区二区三区手机在线观看 | 日韩av看片 | 免费看麻豆| 狠狠干干 | 在线成人一区二区 | 亚洲国产精品小视频 | 亚洲国产精品va在线看 | 三级av小说 | 中文国产在线观看 | 欧美福利在线播放 | 夜夜躁日日躁狠狠久久av | 亚洲精品视频偷拍 | 欧美日韩国内在线 | 在线播放亚洲激情 | 黄色大片中国 | 日韩精品无码一区二区三区 | 久久国产精品99国产精 | 国模视频一区二区 | 日本不卡一区二区三区在线观看 | 国产小视频在线 | 91日韩精品视频 | 日本久久精品视频 | 亚洲深夜影院 | 狠狠操影视 | 国产免费观看久久黄 | 国产视频精选 | 日本三级中文字幕在线观看 | 国产欧美精品xxxx另类 | 九九在线精品视频 | 欧美极度另类 | 久久精品4 | 伊人小视频| 久久精品观看 | 一级特黄aaa大片在线观看 | 亚洲激情在线播放 | 中文字幕一区三区 | 国产精品久久久久久久电影 | 久久激情五月丁香伊人 | 免费看片网址 | 永久免费视频国产 | 日韩中文字幕免费在线观看 | 91人人干| 在线不卡中文字幕播放 | 国产精品毛片一区视频播 | av电影在线播放 | 国产精品午夜久久久久久99热 | 久久成人在线视频 | 午夜精品久久久久久久99无限制 | 成人一级片在线观看 | 久久婷婷综合激情 | 天天综合色天天综合 | 中文字幕日韩电影 | 五月开心六月伊人色婷婷 | 日韩精品一区二区三区中文字幕 | 麻豆国产网站入口 | 欧美一区二区精美视频 | 天天狠狠 | 日韩视频在线观看免费 | 亚洲视频 视频在线 | 国产成人av | 视频三区| 亚洲精品xx| 欧美爽爽爽 | 国产精品初高中精品久久 | 91丨九色丨国产女 | 欧美一级黄色视屏 | 国产美女主播精品一区二区三区 | 九九热只有精品 | 曰本免费av | 精品国产乱码久久久久久浪潮 | 天天摸天天干天天操天天射 | 亚洲精品欧美视频 | 天天草综合 | 天天操欧美 | 在线av资源 | 丁香婷婷社区 | 国产精品 国内视频 | 超碰午夜 | 伊人春色电影网 | av一级网站 | 亚洲小视频在线观看 | av中文字幕在线观看网站 | 亚洲二区精品 | 日韩午夜三级 | 亚洲 综合 国产 精品 | 欧美日韩啪啪 | 久久国语露脸国产精品电影 | 96av在线视频 | 国产精品一区二区三区99 | www.国产视频| 精品1区二区 | 玖玖在线观看视频 | 九九免费在线观看 | 久久久久福利视频 | 99国产精品一区二区 | 91久久久久久久一区二区 | 成人免费网视频 | 丁香激情网| 中文字幕在线观看第二页 | 亚洲视频免费在线 | 四虎成人精品在永久免费 | 成人av中文字幕在线观看 | 9992tv成人免费看片 | 999精品网| 五月婷婷在线视频观看 | 91视频 - x99av| 91精品在线免费观看视频 | a精品视频 | 国产精品入口a级 | 亚洲在线成人精品 | 亚洲精品免费在线观看视频 | 91香蕉国产 | 奇米影视8888在线观看大全免费 | 操操操操网 | 精产嫩模国品一二三区 | 国产一区在线精品 | 国内视频在线观看 | 中文av一区二区 | 中文字幕一区二区三区在线视频 | 97精品国产一二三产区 | 国产精品一区二区久久精品爱涩 | 日日干天天 | 在线观看成人国产 | 视频在线观看入口黄最新永久免费国产 | 日本三级吹潮在线 | 午夜12点 | 99精品一区二区三区 | 在线播放视频一区 | 777久久久| 视频福利在线观看 | 国产美女黄网站免费 | 色综合久久88| 国产精品一二 | 在线亚洲高清视频 | 97av视频在线观看 | ww亚洲ww亚在线观看 | 久久视了| av在线播放快速免费阴 | 丝袜美腿在线播放 | 中文字幕高清在线 | 国产午夜精品一区 | 中文字幕精 | 日本成人中文字幕在线观看 | 日韩精品久久一区二区三区 | 成人国产精品久久久春色 | 日韩亚洲在线视频 | 欧美色图另类 | 综合久久网 | 国语对白少妇爽91 | 久久精品在线视频 | 激情伊人| 亚洲精品电影在线 | 操碰av| 日韩精品网址 | www.夜夜操 | 97超碰在线免费观看 | 国产一级黄 | 91香蕉视频 | 国产精品一区二区三区观看 | 精品中文字幕在线播放 | 人人干人人爽 | 国产亚洲成av人片在线观看桃 | 99国产视频 | 99精品在线观看视频 | 国产免费嫩草影院 | 91av久久| 日韩三级.com | 日女人电影 | 成人福利在线观看 | 精品一区二区综合 | 9草在线 | 久久综合婷婷综合 | 69国产在线观看 | 伊人色综合久久天天网 | 国产一二区视频 | 久久人人97超碰国产公开结果 | 香蕉视频在线视频 | 国产做aⅴ在线视频播放 | 日韩精品首页 | 91污视频在线观看 | 欧美日韩国产免费视频 | 久久综合成人 | 91视频啪| 日韩中文字幕电影 | 国产成人久久精品77777综合 | 日韩精品中文字幕在线观看 | www.久久久久 | a成人v在线 | 99精品在线播放 | 在线看免费 | 黄p在线播放 | 在线观看成年人 | 欧美成人播放 | 欧美成人在线免费 | 麻豆视传媒官网免费观看 | 久久伊人五月天 | 日韩av电影手机在线观看 | 中文亚洲欧美日韩 | 欧美成人黄 | 五月婷婷视频在线观看 | 久久网站免费 | 精品免费视频 | av中文在线观看 | 人人干人人艹 | 免费网站黄色 | 国产一区二区在线视频观看 | 久久综合色天天久久综合图片 | 外国av网 | 国产一区二区视频在线 | 在线免费av网 | 色综合天天狠天天透天天伊人 | 97超碰资源 | 成人羞羞视频在线观看免费 | 天天综合入口 | 欧美性做爰猛烈叫床潮 | 亚洲综合丁香 | 一级一级一片免费 | 亚洲日本黄色 | 亚洲国产精品成人女人久久 | 五月花婷婷| ww亚洲ww亚在线观看 | av在线超碰| 99热在线观看 | 欧美日韩性视频在线 | 欧美日韩中文在线视频 | 99久久精品免费看国产免费软件 | 免费看色的网站 | 天堂av在线免费 | 日日爱999| 国产色 在线 | 在线不卡的av | 四虎国产精品免费观看视频优播 | 日韩特黄一级欧美毛片特黄 | 久久综合久久88 | 日韩中文字幕免费在线观看 | 999久久久久 | 色综合久久久久综合体桃花网 | 97超碰资源 | 欧美成年人在线观看 | 亚洲专区欧美专区 | av在线播放快速免费阴 | 超碰在线最新网址 | 国产精品99久久久久人中文网介绍 | 一级c片 | 欧美韩国日本在线观看 | 久久精品成人 | 高清不卡免费视频 | av大全在线免费观看 | 在线免费观看视频一区二区三区 | 国产色女人 | 久久黄页| 在线观看免费福利 | 欧美另类sm图片 | 国产做a爱一级久久 | 97人人澡人人爽人人模亚洲 | 午夜视频福利 | wwxxxx日本 | 国产精品一区二区免费在线观看 | 超碰在线公开 | 91福利视频免费 | 久久久精品久久日韩一区综合 | 色婷婷免费| 中文字幕免费观看 | 天天色天天射天天操 | 久热免费在线 | 亚洲精品在线一区二区三区 | 国产一区二区在线观看免费 | 丁香影院在线 | 一区二区三区日韩精品 | 久久天天拍 | 国产色视频网站2 | 久久成人一区 | 欧美精品一区二区免费 | 玖玖视频 | 亚洲视频电影在线 | 成人黄色电影在线 | 一级黄色毛片 | 亚洲最新视频在线播放 | 天天干天天色2020 | 精品爱爱| 日韩精品视频在线观看网址 | 激情丁香久久 | 日本亚洲国产 | av大片网址 | 91伊人久久大香线蕉蜜芽人口 | 久久久96 | 中文字幕日韩有码 | 国产男女无遮挡猛进猛出在线观看 | 日韩精品视频免费专区在线播放 | 波多野结衣视频一区 | 国产精品久久久久久久久久不蜜月 | 九九九九九九精品任你躁 | 日韩精品一区二区三区高清免费 | 日韩av电影中文字幕在线观看 | 色综合中文综合网 | 色资源网免费观看视频 | 中文字幕乱偷在线 | 久久久影院官网 | 国产精品久久麻豆 | 国产麻豆传媒 | av电影在线观看完整版一区二区 | 免费在线观看av不卡 | 日韩精品第1页 | 91精品国自产拍天天拍 | 免费性网站 | 婷婷性综合| 国产一区在线播放 | 一区 二区电影免费在线观看 | 中文字幕一区二区三区在线视频 | 日韩在线观看视频网站 | 久久亚洲福利 | 国产黄色片久久 | 狠狠干免费 | 国产一级免费观看视频 | 91中文在线 | 99免费在线播放99久久免费 | 天天天干天天射天天天操 | 五月天最新网址 | 日韩成人一级大片 | 免费观看一区二区三区视频 | 午夜18视频在线观看 | 国产高清一区二区 | 国产在线色视频 | se视频网址 | 九九欧美视频 | 亚洲婷婷丁香 | 又黄又色又爽 | 欧美色综合天天久久综合精品 | 成人免费观看视频网站 | 在线电影 一区 | 精品国产乱码久久久久久1区二区 | 五月亚洲 | 99久久精品国产毛片 | 久久久久久看片 | 欧美日bb| 国产精品久久久久久久久久久久午夜 | 欧美日韩视频在线观看一区二区 | 日韩理论影院 | 欧美日韩亚洲第一页 | 日本成人免费在线观看 | 成人在线网站观看 | 国产一级性生活 | 中文字幕在线看视频国产 | 人人狠 | 亚洲精品免费在线播放 | 成人影片在线免费观看 | 欧美少妇xx | 中文字幕在线观看网站 | 日韩综合一区二区三区 | 日韩欧美一区二区在线 | 日本精品视频一区 | 国产成人精品av久久 | 久久久国产在线视频 | 全久久久久久久久久久电影 | 一区在线观看 | 国产日产精品一区二区三区四区的观看方式 | 日日婷婷夜日日天干 | 玖玖在线视频观看 | 在线看免费 | 午夜精品久久久久久久99无限制 | 欧美一级日韩免费不卡 | 欧美专区日韩专区 | 日本少妇视频 | 久久亚洲在线 | 国产小视频免费观看 | 91高清免费在线观看 | 很黄很黄的网站免费的 | 国产精品嫩草影视久久久 | 国产又粗又猛又黄又爽的视频 | 免费看三级 | 狠狠操.com| 人人插超碰 | 亚洲精品mv在线观看 | 中文字幕在线观看资源 | 天天爽夜夜爽人人爽一区二区 | 在线看的av网站 | 久久激情电影 | 精品视频区 | 五月婷婷亚洲 | 欧美另类z0zx | 丝袜美腿在线视频 | 国产又粗又猛又黄又爽的视频 | 国产自产高清不卡 | 91av视频免费观看 | 亚洲成人999 | av综合站 | 欧美激情精品久久久久久免费 | 美女网站色在线观看 | 视频成人永久免费视频 | 日日弄天天弄美女bbbb | 国内久久久久 | 综合伊人久久 | 麻豆传媒视频在线免费观看 | 久久av在线播放 | 99久久99久久综合 | 激情电影影院 | 69精品在线观看 | 五月在线视频 | 国产毛片在线 | 国产手机视频 | 一级特黄aaa大片在线观看 | 天天色天天上天天操 | 69久久99精品久久久久婷婷 | 天天操天天干天天玩 | 国产精品精品久久久 | 特级西西人体444是什么意思 | 免费午夜av| 在线视频一二三 | 最近更新中文字幕 | 99精品免费久久久久久久久 | 国产精品18久久久久vr手机版特色 | 国产精品一区久久久久 | 亚洲在线视频播放 | 欧美影片| 日韩激情综合 | 黄色网www| 亚洲精品视频在线观看免费视频 | 手机在线黄色网址 | 欧美做受xxx | 在线观看深夜福利 | 欧美性色综合网 | av中文字幕免费在线观看 | 免费高清在线观看成人 | 日韩免费区 | 国产成人精品综合久久久 | 99视频在线免费 | 国产一区在线免费观看视频 | 天天摸夜夜添 | 日本特黄一级片 | 手机看片中文字幕 | 人人搞人人爽 | 日韩精品久久久久久久电影99爱 | 精品国产99 | 久久久精品视频网站 | 国产亚洲精品久久久久久大师 | 久久99精品国产99久久6尤 | 成人免费在线看片 | 国色天香在线 | av3级在线| 国产成人一区二区三区免费看 | 日韩精品中文字幕在线不卡尤物 | 国产精品久久久久久久久久了 | 欧美精品久久久久久久久久 | 91最新在线观看 | 狠狠色伊人亚洲综合网站色 | 国产精品视频免费看 | 亚洲高清视频在线 | 日韩在线观看不卡 | 成人三级网站在线观看 | 天天色天天射天天综合网 | 国产精品久久久久久久久久免费看 | 久久高清毛片 | 色久综合| 日韩乱理 | 亚洲精品高清一区二区三区四区 | 精品欧美一区二区精品久久 | 国产综合精品一区二区三区 | 欧美精品亚洲精品 | 黄色三级在线观看 | 国产日韩欧美在线看 | 麻豆成人在线观看 | 久久九精品| 亚洲精品一区二区三区新线路 | 黄色一级免费电影 | 国产在线欧美日韩 | 国产一区高清在线观看 | 国产伦精品一区二区三区… | 国产91丝袜在线播放动漫 | 91污视频在线观看 | 亚洲精品在线免费播放 | 免费看一级特黄a大片 | 五月激情久久 | 免费看高清毛片 | 亚洲狠狠操 | 久久在线 | 99免费精品| 麻豆系列在线观看 | 国产精品刺激对白麻豆99 | 国产精品自在欧美一区 | 欧美日韩精品国产 | 天天爱天天操天天干 | 亚洲精品videossex少妇 | 91成年人网站 | 久久久久久久久影视 | 99国内精品久久久久久久 | 国产精品美 | 日日精品 | www.狠狠操| 国产精品 中文在线 | 天堂av色婷婷一区二区三区 | 国产视频一区二区三区在线 | 欧美另类重口 | 欧美日韩午夜在线 | 欧美91精品久久久久国产性生爱 | 亚洲天堂网在线观看视频 | 日韩在线播放欧美字幕 | 国产精品专区在线 | 午夜精品久久久久久久99无限制 | 国产69久久 | 一区二区三区四区精品视频 | 91免费版在线观看 | 黄色中文字幕在线 | 五月婷婷激情 | 天天射夜夜爽 | 奇米影视8888在线观看大全免费 | 精品夜夜嗨av一区二区三区 | 日韩精品免费在线播放 | 久久av在线 | 婷婷在线视频观看 | 91精品小视频 | 成人亚洲精品国产www | 日日干av | 香蕉精品视频在线观看 | 亚洲欧美日韩国产一区二区 | 激情小说久久 | 97国产一区二区 | 六月丁香婷婷网 | 精品国产乱码久久久久久三级人 | 久久久久久久久网站 | 国产午夜精品av一区二区 | 99久久99热这里只有精品 | 欧美日韩国产三级 | 成人宗合网 | 欧美精品国产综合久久 | 久久99精品国产麻豆宅宅 | 欧洲色吧| 五月婷婷播播 | 国产一区二区免费在线观看 | 亚洲va在线va天堂va偷拍 | 81国产精品久久久久久久久久 | 玖玖视频免费在线 | 国产成人精品亚洲精品 | 91爱看片 | 在线播放视频一区 | 日韩精品中文字幕一区二区 | 91av手机在线观看 | 久久玖| 77国产精品 | 免费在线观看成人av | www国产在线| 午夜av剧场 | 国产精品手机在线观看 | 久久精品99久久久久久2456 | 天天做天天爱天天爽综合网 | 亚洲精选视频免费看 | 亚洲一区在线看 | 日韩理论在线视频 | 99在线精品视频观看 | 国产偷国产偷亚洲清高 | 97超碰超碰久久福利超碰 | 久久久www成人免费精品 | 欧美爽爽爽 | 一区二区成人国产精品 | 国产精品高潮呻吟久久久久 | 亚洲日日射 | 丝袜美腿在线 | 操碰av| 天天操天天干天天干 | 18国产精品白浆在线观看免费 | 久久高清 | 99精品视频在线看 | 亚洲久草在线视频 | 天天插天天狠 | 精品国产aⅴ麻豆 | 五月婷婷丁香综合 | 在线播放 亚洲 | 天天精品视频 | 九九导航| 欧美另类激情 | 插婷婷 | 久久久精华网 | 免费看黄20分钟 | 狠狠综合网 | 伊人激情网 | 日韩精品在线免费播放 | av电影 一区二区 | 中文字幕日韩电影 | 色六月婷婷 | 亚洲黄色免费电影 | 精品国产一区二区久久 | 超碰公开在线观看 | 亚洲国产成人在线观看 | 婷婷日韩 | 亚洲区另类春色综合小说校园片 | 免费又黄又爽的视频 | 网站在线观看你们懂的 | 91麻豆国产福利在线观看 | 国产在线观看免 | 久久久精品亚洲 | 久久久久日本精品一区二区三区 | 久久亚洲成人网 | 成人一区二区三区中文字幕 | 国产在线一线 | 99视频偷窥在线精品国自产拍 | 伊人首页| 欧美一级片 | 日韩美女av在线 | 91网在线 | 日韩黄色免费电影 | 国产高清视频在线播放 | 美女黄濒| 国产免费黄视频在线观看 | 成片人卡1卡2卡3手机免费看 | 91欧美日韩国产 | 五月婷婷播播 | 精品v亚洲v欧美v高清v | 久久老司机精品视频 | 久久精品久久久久 | 18久久久久久 | 又黄又刺激视频 | 久久久这里有精品 | 最近免费观看的电影完整版 | 国产手机视频在线播放 | 一级精品视频在线观看宜春院 | 伊人五月天 | 中文字幕乱码一区二区 | 久久久麻豆视频 | 91色视频 | 四虎国产精品免费 | 成人资源站 | 成人高清在线 | 欧美天天综合 | 国产中文字幕视频 | 欧美激情视频免费看 | 国产精品免费一区二区 | 国产精品欧美久久久久天天影视 | 91九色最新 | 久久久免费视频播放 | 玖玖爱国产在线 | 人人看人人草 | 激情av综合 | 久久新视频 | 色在线亚洲| 视频国产区| 欧美久久久久久久久中文字幕 | 91大神一区二区三区 | 韩日电影在线 | 爱爱一区| 蜜臀av免费一区二区三区 | 亚洲精品视频一二三 | 激情大尺度视频 | 国产成人精品一区二 | 九九热在线视频免费观看 | 人人爽人人爱 | 国产精品美女久久久久久久久 | 色香蕉在线| 成人网在线免费视频 | 少妇视频一区 | 九九国产精品视频 | 午夜私人影院久久久久 | 国产在线观看不卡 | 免费a网| av观看网站 | 天天躁日日 | 亚洲片在线 | 天天综合精品 | 手机成人av在线 | 久久人人精品 | 狠狠狠狠狠狠天天爱 | 日韩在线视频观看 | 96视频免费在线观看 | 国内精品久久久久久中文字幕 | 色偷偷网站视频 | 黄色一级动作片 | 中文字幕视频三区 | 中文字幕 国产视频 | 欧美精品日韩 | 久久草草影视免费网 | 日韩亚洲在线视频 | 国产一二三区在线观看 | www.888.av| 99re久久资源最新地址 | 人人爽人人 | 干天天| 午夜av在线 | 免费黄色激情视频 | 综合网伊人| 人人插人人射 | av性在线 | 国产中文字幕视频在线 | 国产精品大片 | 97在线观看免费 | 狠狠伊人 | 亚洲国内精品在线 | 国产成人福利 | 亚洲狠狠操 | 久久综合加勒比 | 99九九视频| 日韩精品在线一区 | 国产精品正在播放 | 一区二区三区四区在线免费观看 | 婷婷网站天天婷婷网站 | 日韩剧| 97成人资源| 国产三级av在线 | 国产视频一区在线播放 | 成人免费网视频 | 婷婷中文字幕综合 | 亚洲精品久久在线 | 国产精品一区二区三区免费视频 | 久久综合五月天婷婷伊人 | 国产福利不卡视频 | 狠狠色狠狠色合久久伊人 | 91mv.cool在线观看 | 超碰人人国产 | 狠狠狠色丁香综合久久天下网 | 日日夜夜狠狠操 | 黄p在线播放 | 国产 日韩 欧美 中文 在线播放 | 国产一级在线视频 | 91av视频在线免费观看 | 激情丁香 | 五月天久久激情 | 2020天天干夜夜爽 | 日韩高清免费在线 | 在线观看黄污 | 亚洲精品综合在线 | 99精品欧美一区二区三区 | 四虎成人精品永久免费av | 人人搞人人搞 | 欧美日韩观看 | 婷婷丁香色综合狠狠色 | 精品国自产在线观看 | 久久精品一二三区白丝高潮 | 久久久久久久久久久久久久av | 正在播放国产一区二区 | 2018亚洲男人天堂 | 最近中文字幕mv免费高清在线 | 午夜久久福利影院 | a视频在线观看免费 | 欧美精品一区二区三区四区在线 | 色偷偷男人的天堂av | 99综合电影在线视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产一级二级三级视频 | 婷婷丁香在线观看 | 久久综合九色综合欧美狠狠 | 日本99久久 | 亚洲在线综合 | 欧美精品国产精品 | 男女靠逼app| 在线视频精品播放 | 999国产在线 | 国产免费三级在线观看 | 中文字幕av一区二区三区四区 | 九九视频精品在线 | 91亚洲精品在线 | 色婷婷国产精品 | 久久国产精品区 | 国产成人一区二区三区在线观看 | 在线观看亚洲专区 | 在线观看视频一区二区三区 | 久久久久久蜜桃一区二区 | 99视频精品全国免费 | 91成人短视频在线观看 | 国际精品久久久 | 这里只有精品视频在线观看 | 日韩av一区二区在线影视 | a黄色一级片 | 久久6精品| 久久伦理视频 | 在线视频中文字幕一区 | 久久精品一区二区三 | 亚洲黄色在线播放 | 日韩伦理一区二区三区av在线 | 国产成人区 | 激情视频91 | 午夜婷婷在线观看 | 亚洲,播放 | 精品久久免费 | 欧美日韩三级在线观看 | 在线精品亚洲 | 精品久久久久国产免费第一页 | 人人干97 | 亚洲视频999 | 日韩欧美高清在线观看 | 伊人网av | 在线观看完整版免费 | 日本韩国欧美在线观看 | www.av中文字幕.com | 最新日韩在线 | 99精品视频免费观看视频 | 91亚洲视频在线观看 | 亚洲视频高清 | 天天射天天射天天 | 午夜免费在线观看 | 中文字幕在线播放一区 | 高清av影院 | 亚洲国产中文字幕 | 日本久久精 | 黄色片网站 | 日韩免费在线观看 | 永久av免费在线观看 | 国产一二三在线视频 | 国产精品免费不卡 | 欧美另类tv| 黄色免费大全 | 在线黄色观看 | 91精品视频一区二区三区 | 国产精品久久久久久久久毛片 | 亚洲精品在线观看免费 | av国产网站 | 国产成人一区三区 | 中文字幕字幕中文 | 成人精品一区二区三区电影免费 | 人人干人人添 | 日韩视频一区二区 | 97成人在线观看 | 91亚洲精品久久久蜜桃 | 国产无套精品久久久久久 | 亚洲精品在线免费看 | 国产精品av在线免费观看 | 黄色小说网站在线 | 久久艹艹 | 亚洲 在线| av软件在线观看 | 国产日产精品一区二区三区四区的观看方式 | 日韩视频免费播放 | 久久精品一二三区白丝高潮 | 国内视频 | 福利视频一区二区 | 2019av在线视频 | 久久久精华网 | av线上看 | 天天做日日做天天爽视频免费 | 超级碰碰碰视频 | 免费三级a | 字幕网av | 91成人精品一区在线播放 | 亚洲经典中文字幕 | 日韩一级电影在线观看 | 丁香电影小说免费视频观看 | 精品国产一区二 | 日本久久久久久科技有限公司 | 欧美国产日韩久久 | 中文字幕一区二区三区四区视频 | 超碰官网| 国产麻豆精品传媒av国产下载 | 久久久久观看 | www.色就是色 | 欧美资源在线观看 | 久久综合偷偷噜噜噜色 | 天天爽网站 | 91视频在线免费观看 | 欧美成人精品欧美一级乱黄 | 九九九九精品九九九九 | 午夜 久久 tv | 四虎www | 国产成人精品亚洲 | 亚洲欧美日韩国产一区二区 | 国产精品9999久久久久仙踪林 | 亚洲精品久久久蜜桃直播 | 色网址99 | 国产视频综合在线 | 精品国产乱码久久久久 | 在线激情影院一区 | 国产黄在线看 | 日韩com | 在线观看av的网站 | 亚洲人片在线观看 | 在线免费看黄色 | 久久伊人爱 | 日韩av一卡二卡三卡 | 狠狠色噜噜狠狠狠狠2021天天 | 天天天操天天天干 | 精品九九久久 | 夜色.com | 中文字幕在线观看免费高清电影 | 色999视频 | 麻豆国产露脸在线观看 | zzijzzij日本成熟少妇 | 久久成年人网站 | 麻豆久久一区 | 一本一本久久a久久精品综合妖精 | 在线观影网站 | 黄色av高清 | 婷婷中文字幕 | 波多野结衣久久资源 | 国产手机在线视频 | 免费福利视频网 | 欧美日韩国产一区二区三区在线观看 | 中文字幕韩在线第一页 | 日韩中文字幕免费在线播放 | www.av免费观看 | 国产丝袜 | 日韩电影中文字幕在线观看 | 91视频 - 114av | 日日干 天天干 | 黄色小说18 | 麻豆国产在线播放 | 久草视频播放 | 中文字幕丝袜 | www.色婷婷.com| 五月天综合婷婷 | 免费日韩一区二区三区 | 久久99国产精品二区护士 | 韩日精品在线 | 亚洲高清视频在线观看免费 | 美女黄视频免费看 | 日韩免费在线观看 | 日日干美女 | 国产精品一区二区久久精品 | 99 色| 欧美一区二区在线免费看 | 欧美激情视频一区 | 欧美色综合久久 | 波多野结衣在线视频一区 | 91精品国产亚洲 | 国产成人久久久77777 | 成人午夜网址 | 97超碰福利久久精品 | 欧美大片mv免费 | 久久久久国产精品午夜一区 | 成年人国产视频 | 国产视频在线一区二区 | 久久人人97超碰com | 99色免费| 免费国产黄线在线观看视频 | 视频一区二区在线 | 久久久美女 | 亚洲夜夜网 | av不卡中文字幕 | 亚洲国产中文字幕在线 | 国产黄色在线网站 | 色com| 97电影在线观看 | 欧美黑人性爽 | 黄在线免费观看 | 91日本在线播放 | 精品在线视频观看 | 久久久久久久久久久免费视频 | 日本成人中文字幕在线观看 | 婷婷国产一区二区三区 | 日韩三级视频在线观看 | 国产字幕在线播放 | 中文字幕最新精品 | 久久久久久欧美二区电影网 | 91高清免费|