精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS的ASIHTTPRequest學習

移動開發 iOS
ASIHTTPRequest是一款極其強勁的HTTP訪問開源項目。讓簡單的API完成復雜的功能,如:異步請求,隊列請求,GZIP壓縮,緩存,斷點續傳,進度跟蹤,上傳文件,HTTP認證在新的版本中,還加入了Objective-C閉包Block的支持,讓我們的代碼更加輕簡靈活。

ASIHTTPRequest是一款極其強勁的HTTP訪問開源項目。讓簡單的API完成復雜的功能,

如:
異步請求,隊列請求,GZIP壓縮,緩存,斷點續傳,進度跟蹤,上傳文件,HTTP認證
在新的版本中,還加入了Objective-C閉包Block的支持,讓我們的代碼更加輕簡靈活。

下面就舉例說明它的API用法。

發起一個同步請求

同步意為著線程阻塞,在主線程中使用此方法會使應用Hang住而不響應任何用戶事件。所以,在應用程序設計時,大多被用在專門的子線程增加用戶體驗,或用異步請求代替(下面會講到)。

  1. - (IBAction)grabURL:(id)sender 
  2.   NSURL *url = [NSURL URLWithString:@" http://allseeing-i.com"]; 
  3.    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  4.   [request startSynchronous]; 
  5.   NSError *error = [request error]; 
  6.   if (!error) { 
  7.      NSString *response = [request responseString]; 
  8.   } 

a, 用requestWithURL快捷方法獲取ASIHTTPRequest的一個實例
b, startSynchronous 方法啟動同步訪問,
c, 由于是同步請求,沒有基于事件的回調方法,所以從request的error屬性獲取錯誤信息。
d, responseString,為請求的返回NSString信息。

創建一個異步請求

異步請求的好處是不阻塞當前線程,但相對于同步請求略為復雜,至少要添加兩個回調方法來獲取異步事件。
下面異步請求代碼完成上面同樣的一件事情:

  1. - (IBAction)grabURLInBackground:(id)sender 
  2.    NSURL *url = [NSURL URLWithString:@" http://allseeing-i.com"]; 
  3.     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  4.    [request setDelegate:self]; 
  5.    [request startAsynchronous]; 
  6.   
  7. - (void) requestFinished:(ASIHTTPRequest *)request 
  8.    // Use when fetching text data 
  9.    NSString *responseString = [request responseString]; 
  10.   
  11.    // Use when fetching binary data 
  12.    NSData *responseData = [request responseData]; 
  13.   
  14. - (void)requestFailed:(ASIHTTPRequest *)request 
  15.    NSError *error = [request error]; 

a,與上面不同的地方是指定了一個 "delegate",并用startAsynchronous來啟動網絡請求。
b,在這里實現了兩個delegate的方法,當數據請求成功時會調用requestFinished,請求失敗時(如網絡問題或服務器內部錯誤)會調用requestFailed。

隊列請求

提供了一個對異步請求更加精準豐富的控制。
如,可以設置在隊列中,同步請求的連接數。往隊列里添加的請求實例數大于maxConcurrentOperationCount時,請求實例將被置為等待,直到前面至少有一個請求完成并出列才被放到隊列里執行。
也適用于當我們有多個請求需求按順序執行的時候(可能是業務上的需要,也可能是軟件上的調優),僅僅需要把maxConcurrentOperationCount設為“1”。

  1. - (IBAction)grabURLInTheBackground:(id)sender 
  2.    if (![self queue]) { 
  3.       [self setQueue:[[[NSOperationQueue alloc] init] autorelease]]; 
  4.    } 
  5.   
  6.    NSURL *url = [NSURL URLWithString:@" http://allseeing-i.com"]; 
  7.    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  8.    [request setDelegate:self]; 
  9.    [request setDidFinishSelector:@selector(requestDone:)]; 
  10.    [request setDidFailSelector:@selector(requestWentWrong:)]; 
  11.    [ [self queue] addOperation:request]; //queue is an NSOperationQueue 
  12.   
  13. - (void)requestDone:(ASIHTTPRequest *)request 
  14.    NSString *response = [request responseString]; 
  15.   
  16. - (void)requestWentWrong:(ASIHTTPRequest *)request 
  17.    NSError *error = [request error]; 

創建NSOperationQueue,這個Cocoa架構的執行任務(NSOperation)的任務隊列。我們通過 ASIHTTPRequest.h的源碼可以看到,此類本身就是一個NSOperation的子類。也就是說它可以直接被放到"任務隊列"中,并被執行。 上面的代碼隊了隊列的創建與添加操作外,其它代碼與上一例一樣。

請求隊列上下文

a,可以設置一個上下文(userInfo)到request對象中,當請求響應完后可以通過訪問request對象的userInfo獲取里面的信息
b,為每一個請求實例設置不同的setDidFinishSelector / setDidFailSelector的回調方法
c,子類化ASIHTTPRequest,重寫requestFinished: 與 failWithProblem:方法

ASINetworkQueues, 它的delegate提供更為豐富的功能

提供的更多的回調方法如下:
a,requestDidStartSelector,請求發起時會調此方法,你可以在此方法中跟據業務選擇性的設置request對象的deleaget。
b,requestDidReceiveResponseHeadersSelector,當接受完響應的Header后設計此方法,這個對下載大數據的時候相當有用,你可以在方法里做更多業務上的處理。
c,requestDidFinishSelector,請求并響應成功完成時調用此方法
d,requestDidFailSelector,請求失敗
e,queueDidFinishSelector,整個隊列里的所有請求都結束時調用此方法。

  它是NSOperationQueues的擴展,小而強大。但也與它的父類略有區別。如,僅添加到隊列中其實并不能執行請求,只有調用[ queue g o]才會執行;一個正在運行中的隊列,并不需要重復調用[ queue go ]。

默認情況下,隊列中的一個請求如果失敗,它會取消所有未完成的請求。可以設置[ queue setShouldCancelAllRequestsOnFailure:NO ]來修 正。

#p#
取消異步請求

首先,同步請求是不能取消的。
其次,不管是隊列請求,還是簡單的異步請求,全部調用[ request cancel ]來取消請求。

  取消的請求默認都會按請求失敗處理,并調用請求失敗delegate。
如果不想調用delegate方法,則設置:[ request clearDelegatesAndCancel];

隊列請求中需要注意的是,如果你取消了一個請求,隊列會自動取消其它所有請求。
如果只想取消一個請求,可以設置隊列:[ queue setShouldCancelAllRequestsOnFailure:NO ];
如果想明確取消所有請求:[ queue cancelAllOperations ];

安全的內存回收建議

request并沒有retain你的delegate,所以在沒有請求完的時候釋放了此delegate,需要在dealloc方法里先取消所有請求,再釋放請求實例,如:

  1. - (void)dealloc 
  2.    [request clearDelegatesAndCancel]; 
  3.    [request release]; 
  4.    ... 
  5.    [super dealloc]; 
向服務器端上傳數據

ASIFormDataRequest ,模擬 Form表單提交,其提交格式與 Header會自動識別。
沒有文件:application/x-www-form-urlencoded
有文件:multipart/form-data

  1. ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
  2. [request setPostValue:@"Ben" forKey:@"first_name"]; 
  3. [request setPostValue:@"Copsey" forKey:@"last_name"]; 
  4. [request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"]; 
  5. [request addData:imageData withFileName:@"george.jpg" andContentType:@"image/jpeg"forKey:@"photos"]; 

如果要發送自定義數據:

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request appendPostData:[@"This is my data" dataUsingEncoding:NSUTF8StringEncoding]]; 
  3. // Default becomes POST when you use appendPostData: / appendPostDataFromFile: / setPostBody: 
  4. [request setRequestMethod:@"PUT"]; 
  5.  
  6. //用戶自定義數據   字典類型  (可選) 
  7. request.userInfo = [NSDictionary dictionaryWithObject:method forKey:@"Method"]; 
  8.  
  9. //post的數據 
  10. [request appendPostData:[body dataUsingEncoding:NSUTF8StringEncoding]];
下載文件

通過設置request的setDownloadDestinationPath,可以設置下載文件用的下載目標目錄。
首先,下載過程文件會保存在temporaryFileDownloadPath目錄下。如果下載完成會做以下事情:
1,如果數據是壓縮的,進行解壓,并把文件放在downloadDestinationPath目錄中,臨時文件被刪除
2,如果下載失敗,臨時文件被直接移到downloadDestinationPath目錄,并替換同名文件。

如果你想獲取下載中的所有數據,可以實現delegate中的request:didReceiveData:方法。但如果你實現了這個方法,request在下載完后,request并不把文件放在downloadDestinationPath中,需要手工處理。

獲取響應信息

信息:status , header, responseEncoding

  1. [request responseStatusCode]; 
  2. [[request responseHeaders] objectForKey:@"X-Powered-By"]; 
  3.  [request responseEncoding]; 
獲取請求進度

有兩個回調方法可以獲取請求進度,
1,downloadProgressDelegate,可以獲取下載進度
2,uploadProgressDelegate,可以獲取上傳進度

cookie的支持

如果Cookie存在的話,會把這些信息放在NSHTTPCookieStorage容器中共享,并供下次使用。
你可以用[ ASIHTTPRequest setSessionCookies:nil ] ; 清空所有Cookies。
當然,你也可以取消默認的Cookie策略,而使自定義的Cookie:

  1. //Create a cookie 
  2. NSDictionary *properties = [[[NSMutableDictionary alloc] init] autorelease]; 
  3. [properties setValue:[@"Test Value" encodedCookieValue] forKey:NSHTTPCookieValue]; 
  4. [properties setValue:@"ASIHTTPRequestTestCookie" forKey:NSHTTPCookieName]; 
  5. [properties setValue:@".allseeing-i.com" forKey:NSHTTPCookieDomain]; 
  6. [properties setValue:[NSDate dateWithTimeIntervalSinceNow:60*60] forKey:NSHTTPCookieExpires]; 
  7. [properties setValue:@"/asi-http-request/tests" forKey:NSHTTPCookiePath]; 
  8. NSHTTPCookie *cookie = [[[NSHTTPCookie alloc] initWithProperties:properties] autorelease]; 
  9.   
  10. //This url will return the value of the 'ASIHTTPRequestTestCookie' cookie 
  11. url = [NSURL URLWithString:@" http://allseeing-i.com/ASIHTTPRequest/tests/read_cookie"]; 
  12. request = [ASIHTTPRequest requestWithURL:url]; 
  13. [request setUseCookiePersistence:NO]; 
  14. [request setRequestCookies:[NSMutableArray arrayWithObject:cookie]]; 
  15. [request startSynchronous]; 
  16.   
  17. //Should be: I have 'Test Value' as the value of 'ASIHTTPRequestTestCookie' 
  18. NSLog(@"%@",[request responseString]); 
#p#
大文件斷點續傳

0.94以后支持大文件的斷點下載,只需要設置:

  1. [ request setAllowResumeForFileDownloads:YES ]; 
  2. [ request setDownloadDestinationPath:downloadPath ]; 

就可以了。

ASIHTTPRequest會自動保存訪問過的URL信息,并備之后用。在以下幾個場景非常有用:
1,當沒有網絡連接的時候。
2,已下載的數據再次請求時,僅當它與本地版本不樣時才進行下載。

ASIDownloadCache 設置下載緩存

它對Get請求的響應數據進行緩存(被緩存的數據必需是成功的200請求):

  1. [ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];  

當設置緩存策略后,所有的請求都被自動的緩存起來。
另外,如果僅僅希望某次請求使用緩存操作,也可以這樣使用:

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request setDownloadCache:[ASIDownloadCache sharedCache]]; 
多種的緩存并存

僅僅需要創建不同的ASIDownloadCache,并設置緩存所使用的路徑,并設置到需要使用的request實例中:

  1. ASIDownloadCache *cache = [[[ASIDownloadCache alloc] init] autorelease]; 
  2. [cache setStoragePath:@"/Users/ben/Documents/Cached-Downloads"]; 
  3. [self setMyCache:cache]; 
  4. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  5. [request setDownloadCache:[self myCache]]; 
緩存策略

緩存策略是我們控制緩存行為的主要方式,如:什么時候進行緩存,緩存數據的利用方式。
以下是策略可選列表(可組合使用):

ASIUseDefaultCachePolicy

這是一個默認的緩存策略“ASIAskServerIfModifiedWhenStaleCachePolicy”,這個很明白,見名知意(它不能與其它策略組合使用)

ASIDoNotReadFromCacheCachePolicy

所讀數據不使用緩存

ASIDoNotWriteToCacheCachePolicy

不對緩存數據進行寫操作

ASIAskServerIfModifiedWhenStaleCachePolicy

默認緩存行為,request會先判斷是否存在緩存數據。a, 如果沒有再進行網絡請求。 b,如果存在緩存數據,并且數據沒有過期,則使用緩存。c,如果存在緩存數據,但已經過期,request會先進行網絡請求,判斷服務器版本與本地版本是 否一樣,如果一樣,則使用緩存。如果服務器有新版本,會進行網絡請求,并更新本地緩存。

ASIAskServerIfModifiedCachePolicy

與默認緩存大致一樣,區別僅是每次請求都會 去服務器判斷是否有更新

ASIOnlyLoadIfNotCachedCachePolicy

如果有緩存在本地,不管其過期與否,總會拿來使用

ASIDontLoadCachePolicy

僅當有緩存的時候才會被正確執行,如果沒有緩存,request將被取消(沒有錯誤信息)

ASIFallbackToCacheIfLoadFailsCachePolicy

這個選項經常被用來與其它選項組合使用。請求失敗時,如果有緩存當網絡則返回本地緩存信息(這個在處理異常時非常有用)

如果設置了“defaultCachePolicy”則所有的請求都會使用此緩存。

緩存存儲方式

你可以設置緩存的數據需要保存多長時間,ASIHTTPRequest提供了兩種策略:
a,ASICacheForSessionDurationCacheStoragePolicy,默認策略,基于session的緩存數據存儲。當下次運行或[ASIHTTPRequest clearSession]時,緩存將失效。
b,ASICachePermanentlyCacheStoragePolicy,把緩存數據***保存在本地,
如:

  1. ASIHTTPRequest *request = [ ASIHTTPRequest requestWithURL:url ]; 
  2. [ request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy ]; 

另外,也可以使用clearCachedResponsesForStoragePolicy來清空指定策略下的緩存數據。

緩存其它特性

設置是否按服務器在Header里指定的是否可被緩存或過期策略進行緩存:

  1. [[ ASIDownloadCache sharedCache ] setShouldRespectCacheControlHeaders:NO ]; 

設置request緩存的有效時間:

  1. [ request setSecondsToCache:60*60*24*30 ]; // 緩存30天  

可以判斷數據是否從緩存讀取:

  1. [ request didUseCachedResponse ]; 

設置緩存所使用的路徑:

  1. [ request setDownloadDestinationPath:[[ ASIDownloadCache sharedCache ] pathToStoreCachedResponseDataForRequest:request ]];  
實現自定義的緩存

只要簡單的實現ASICacheDelegate接口就可以被用來使用。

使用代理請求

默認的情況下,ASIHTTPRequest會使用被設置的默認代理。但你也可以手動修改http代理:

  1. // Configure a proxy server manually 
  2. NSURL *url = [ NSURL URLWithString:@" http://allseeing-i.com/ignore" ]; 
  3. ASIHTTPRequest *request = [ ASIHTTPRequest requestWithURL:url ]; 
  4. [ request setProxyHost:@"192.168.0.1" ]; 
  5. [ request setProxyPort:3128 ]; 
  6.   
  7. // Alternatively, you can use a manually-specified Proxy Auto Config file (PAC) 
  8. // (It's probably best if you use a local file) 
  9. [request setPACurl:[NSURL URLWithString:@"file:///Users/ben/Desktop/test.pac"]]; 
ASIHTTPRequest, 請求的其它特性

iOS4中,當應用后臺運行時仍然請求數據:

  1. [ request setShouldContinueWhenAppEntersBackground:YES ];  

是否有網絡請求:

  1. [ ASIHTTPRequest isNetworkInUse ]  

是否顯示網絡請求信息在status bar上:

  1. [ ASIHTTPRequest setShouldUpdateNetworkActivityIndicator:NO ]; 

設置請求超時時,設置重試的次數:

  1. [ request setNumberOfTimesToRetryOnTimeout:2 ];  

KeepAlive的支持:

  1. // Set the amount of time to hang on to a persistent connection before it should expire to 2 minutes 
  2. [ request setPersistentConnectionTimeoutSeconds:120 ]; 
  3.   
  4. // Disable persistent connections entirely 
  5. [ request setShouldAttemptPersistentConnection:NO ]; 

 

責任編輯:閆佳明 來源: oschina
相關推薦

2013-07-22 14:43:57

iOS開發ASIHTTPRequ

2013-07-22 14:38:00

iOS開發ASIHTTPRequ

2013-07-21 18:22:59

iOS開發ASIHTTPRequ

2013-07-21 18:18:00

iOS開發ASIHttpRequ

2013-07-21 18:27:15

iOS開發ASIHTTPRequ

2013-07-22 13:48:55

iOS開發ASIHTTPRequ使用Cookie

2013-07-22 13:54:32

iOS開發ASIHTTPRequ

2013-07-22 14:33:15

iOS開發ASIHTTPRequ

2013-07-22 14:15:17

iOS開發ASIHTTPRequ

2013-07-21 18:32:13

iOS開發ASIHTTPRequ

2013-07-22 14:25:29

iOS開發ASIHTTPRequ

2013-07-21 18:09:21

iOS開發ASIHttpRequ創建和執行reques

2013-07-22 14:02:17

iOS開發ASIHTTPRequ

2013-07-22 14:29:35

iOS開發ASIHTTPRequ

2013-07-21 18:04:22

ASIHttpRequiOS開發

2011-08-22 10:06:38

IOS開發ASIHTTPRequHTTP 請求

2013-07-22 14:10:26

iOS開發ASIHTTPRequ

2013-07-22 14:47:56

iOS開發iOS5中ASIHtt

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-12 13:35:23

iPhone文件流ASIHTTPRequ
點贊
收藏

51CTO技術棧公眾號

久久久久国产精品区片区无码| 中文字幕免费在线不卡| 成人午夜视频在线播放| 成人aaaa| 精品国产亚洲一区二区三区在线观看| 大伊香蕉精品视频在线| 国家队第一季免费高清在线观看| 久久国产三级精品| 国模私拍一区二区三区| www.涩涩爱| 欧美美女在线直播| 91麻豆精品国产91久久久资源速度 | 黄色一级片网址| 亚洲AV成人无码一二三区在线| 日韩av高清在线观看| 欧美国产日韩精品| 久久久99999| 嫩草一区二区三区| 精品美女被调教视频大全网站| 99视频在线免费| 欧美v亚洲v| 亚洲欧洲一区二区在线播放| 久久久影院一区二区三区| 亚洲国产精品成人久久蜜臀| 七七婷婷婷婷精品国产| 97国产在线视频| 2021亚洲天堂| 99热在线成人| 丝袜一区二区三区| 99久久精品免费视频| 欧美精品密入口播放| 日韩欧美亚洲国产精品字幕久久久| 性欧美极品xxxx欧美一区二区| 激情国产在线| 亚洲成人免费在线观看| 亚洲中文字幕无码一区二区三区| 色视频在线免费观看| 久久久久久夜精品精品免费| 久99久视频| 手机看片福利永久| www.亚洲人| 国产精品日韩欧美一区二区三区| 国产绿帽刺激高潮对白| 久草在线在线精品观看| 国产精品自拍视频| 在线观看色网站| 蜜臀久久久99精品久久久久久| 国产激情久久久| 久久这里只有精品9| 三级久久三级久久久| 国产精品久久91| 中国精品一区二区| 九九久久精品视频| 91在线观看免费高清完整版在线观看| 在线观看国产黄| 久久精品久久久精品美女| 国产在线98福利播放视频| 91亚洲国产成人久久精品麻豆| 免费观看一级特黄欧美大片| 国产一区在线播放| a天堂中文在线观看| 国产精品一二一区| 国产日韩欧美精品| 偷拍自拍在线| 国产欧美日韩视频在线观看| 三区精品视频观看| 日本在线免费| 一区二区免费看| 久在线观看视频| 日韩欧美另类一区二区| 欧美日韩一级片在线观看| 一起操在线视频| 综合激情久久| 亚洲美女喷白浆| 国产黄色片在线| 欧美黄污视频| 538国产精品视频一区二区| 五月婷婷丁香在线| 国产精品一卡二| 麻豆av一区二区三区久久| 国产日本在线视频| 亚洲视频一区二区在线观看| 日本熟妇人妻xxxx| 欧美粗大gay| 91精品国产91久久综合桃花| 亚洲精品第二页| 蜜臀91精品国产高清在线观看| 日韩一区二区三区xxxx| 国产无遮挡又黄又爽| 日韩精品成人一区二区在线| 亚洲在线免费视频| 精品福利视频导航大全| 亚洲另类在线制服丝袜| 欧美 日韩精品| 亚洲a成人v| 日韩精品在线观看一区| 久久一级免费视频| 日韩视频中文| 91香蕉电影院| 国产在线电影| 亚洲一区二区视频在线| 三级a三级三级三级a十八发禁止| 视频一区中文字幕精品| 亚洲视频在线观看免费| 国产在线视频二区| 精品一区二区三区在线观看国产| 久久精品国产第一区二区三区最新章节 | 超碰在线免费97| av午夜精品一区二区三区| 一区二区视频在线播放| 免费h视频在线观看| 欧美一级夜夜爽| 欧美福利在线视频| 六月丁香综合| 国产伦精品一区二区三区视频黑人| 91精品91久久久中77777老牛| 成年人在线视频| 精品久久久久久中文字幕大豆网| 中文字幕国产高清| 精品国产乱码久久久| 久久久影视精品| www.com在线观看| 国产精品狼人久久影院观看方式| 日本www在线播放| 中文字幕视频精品一区二区三区| www.亚洲一区| 这里只有久久精品视频| 91蜜桃传媒精品久久久一区二区| 激情六月天婷婷| 国产一区2区在线观看| 搡老女人一区二区三区视频tv| 69亚洲精品久久久蜜桃小说| www久久精品| 日韩在线一级片| 欧美日韩直播| 91国内在线视频| 天堂中文在线资源| 亚洲成av人片在线观看无码| 伊人影院在线观看视频| 欧美1区3d| 亚洲free性xxxx护士白浆| 美女隐私在线观看| 欧美日本乱大交xxxxx| 中文乱码字幕高清一区二区| 免播放器亚洲一区| 99re99热| 日本高清久久| 欧美国产视频一区二区| 韩国av在线免费观看| 亚洲国产精品久久人人爱蜜臀| 一级黄色大片免费看| 欧美日韩p片| 国产美女在线精品免费观看| 爱看av在线| 日韩大片免费观看视频播放| 久久久久久久久久久久久av| 2020国产精品自拍| 可以免费在线看黄的网站| blacked蜜桃精品一区| 国产免费一区视频观看免费 | 亚洲一区二区三区高清视频| 国产精品卡一卡二卡三| 手机精品视频在线| 激情综合电影网| 久久婷婷开心| 日本免费一区二区三区等视频| 美女福利精品视频| 日韩专区第一页| 91福利资源站| 亚洲一级生活片| 成人黄页毛片网站| 国产淫片av片久久久久久| 成人影院天天5g天天爽无毒影院| 亚洲精品免费网站| sqte在线播放| 中文字幕9999| 亚洲第一大网站| 色综合天天综合| 久艹在线观看视频| 成人av网站大全| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美va亚洲va| 香蕉污视频在线观看| 亚洲欧美综合另类在线卡通| av免费观看不卡| 蜜臂av日日欢夜夜爽一区| 毛片在线视频观看| 亚洲最好看的视频| 亚洲综合第一页| 亚洲欧洲日本韩国| 欧美大片va欧美在线播放| 四虎影视精品成人| 91精品国产综合久久久久| 亚洲高清毛片一区二区| 亚洲人成精品久久久久久| 国产精品无码专区| 国产一区999| 熟妇人妻无乱码中文字幕真矢织江| 欧美成人日本| 夜夜爽99久久国产综合精品女不卡 | 欧美高清性xxxxhdvideosex| 3d动漫一区二区三区在线观看| 97免费在线视频| 国产福利在线播放麻豆| 亚洲欧美综合另类中字| 亚洲精品18p| 欧美精品xxxxbbbb| 无码人妻丰满熟妇区bbbbxxxx| 亚洲精品成人悠悠色影视| 亚洲第一视频区| 97久久超碰国产精品电影| 国产又粗又猛又爽又黄| 男女男精品网站| 国产精品69页| 99综合在线| 久青草视频在线播放| 91亚洲一区| 亚洲精品无人区| 国产精品一线天粉嫩av| 国内一区在线| 91精品久久久久久综合五月天| 成人免费xxxxx在线观看| 欧美va在线| 国产成人精品av| 日韩影片中文字幕| 久久久久久久999| 成人精品一区二区| 亚洲午夜色婷婷在线| 天天av综合网| 亚洲精品大尺度| 五月天婷婷在线观看| 亚洲成年人在线| 亚洲伦理在线观看| 欧美mv日韩mv国产网站app| a级片在线播放| 欧美一区二区免费视频| 国产乱码久久久| 欧美剧在线免费观看网站| 国产一区二区三区四区视频| 欧美日韩日日夜夜| 在线观看国产黄| 制服丝袜中文字幕一区| 国产伦精品一区二区三区视频痴汉 | 国产女同互慰高潮91漫画| 波多野结衣片子| 日本一区二区三区四区在线视频| 人妻aⅴ无码一区二区三区 | 先锋影音一区二区三区| 北条麻妃国产九九九精品小说 | 国产专区欧美专区| 亚洲狼人综合| 91精品国产一区二区三区动漫 | 欧美日韩综合久久| 国语产色综合| 一区二区免费在线观看| 久久精品久久久| 欧美亚洲色图视频| 中文在线不卡| 午夜国产一区二区三区| 精品一区二区久久| 手机看片国产精品| av综合在线播放| 成年人免费观看视频网站 | 欧美精品成人久久| 午夜一区二区三区在线观看| 日韩精品一区二区亚洲av| 欧美在线短视频| 国产精品一区二区免费视频 | 中文字幕第九页| 久久影院视频免费| 91大神福利视频| 亚洲宅男天堂在线观看无病毒| 亚洲一区欧美在线| 在线观看日韩电影| 国产又大又粗又硬| 亚洲第一av网| 国产高清av在线| 久久成人国产精品| 国产精品蜜芽在线观看| 国产精品久久久久91| 国产999精品在线观看| 国产v亚洲v天堂无码| 综合亚洲自拍| 强伦女教师2:伦理在线观看| 极品少妇一区二区三区| 福利在线一区二区三区| 国产黄色精品网站| 韩国女同性做爰三级| 一区二区三区欧美日韩| 国产99免费视频| 精品国产亚洲在线| 日本视频在线观看| 欧美一区二区三区免费视| www.久久久久爱免| 欧美污视频久久久| 激情综合电影网| 一道本在线免费视频| 高清国产一区二区| 99久久99久久精品免费看小说.| 一区二区三区在线观看欧美| 超碰在线免费97| 日韩av有码在线| 性xxxxfjsxxxxx欧美| 国产精品igao视频| 乱亲女h秽乱长久久久| 一本—道久久a久久精品蜜桃| 亚洲免费中文| 国产精品亚洲一区二区无码| 国产精品久久一卡二卡| 中文字字幕在线中文| 欧美成人激情免费网| 麻豆视频网站在线观看| 国产精品成人国产乱一区| 欧美偷窥清纯综合图区| 欧美日韩dvd| 国产一区二区在线看| 国产三级aaa| 色婷婷久久久久swag精品| 神马午夜一区二区| 色综合久久88| 亚洲一区电影| 国产欧美123| 国产精品一区二区视频| 国产美女网站视频| 欧美日韩极品在线观看一区| 精品美女视频在线观看免费软件| 欧美亚洲国产成人精品| 97超碰成人| 精品国偷自产一区二区三区| 国产激情精品久久久第一区二区| 日韩激情小视频| 91精品久久久久久久91蜜桃| 日韩伦理在线电影| 国产一区二区在线播放| 91亚洲人成网污www| 色免费在线视频| 国产精品国模大尺度视频| 波多野结衣视频在线看| 亚洲人成在线一二| 亚洲不卡系列| 亚洲一区二区三区色| 看电视剧不卡顿的网站| 操她视频在线观看| 欧美精品一二三| 成人ww免费完整版在线观看| 91免费欧美精品| 欧美在线亚洲| 91人妻一区二区| 午夜视频在线观看一区| 亚洲 国产 欧美 日韩| 26uuu日韩精品一区二区| 午夜精品福利影院| 成年人网站大全| 国产精品美女久久久久久久久久久 | 尤物在线免费视频| 日韩精品自拍偷拍| 92久久精品| 免费在线观看91| 毛片不卡一区二区| 欧美人妻精品一区二区三区| 亚洲第五色综合网| 成人精品电影在线| 中文字幕一区二区三区乱码| 国产激情偷乱视频一区二区三区 | 国产精品实拍| 官网99热精品| 天堂va蜜桃一区二区三区漫画版| 免费看日本黄色片| 日韩欧美中文字幕一区| 色偷偷色偷偷色偷偷在线视频| 欧美一级二级三级| 精品一区二区三区免费视频| 香蕉视频一区二区| 国产一区二区三区欧美| 国产精品一级在线观看| 成人一对一视频| 国产精品福利av| 欧洲av在线播放| 国产精品久久久久久久久久99| 亚洲精品中文字幕乱码| 国产精品久久不卡| 欧美精品乱码久久久久久| 国产精品论坛| 亚洲AV无码成人精品一区| 91视视频在线观看入口直接观看www | 99国产高清| 日韩国产欧美一区二区三区| 免费看一级一片| 在线观看亚洲区| 99精品中文字幕在线不卡 | 亚洲1区在线| caoporn超碰97| 亚洲成a天堂v人片| 久久精品视频观看| 欧美色图亚洲自拍| 成人美女视频在线观看| 中文字幕日韩经典| 91高清视频免费观看| 欧美成人有码| 日韩欧美视频免费观看|