NSURLSession相關(guān)的代理方法

首先看下NSURLSessionDelegate等相關(guān)代理方法列表:

NSURLSessionDelegate等代理方法.png

以下為每個(gè)代理方法的作用的詳細(xì)說(shuō)明
1.NSURLSessionDelegate

@protocol NSURLSessionDelegate <NSObject>
@optional

/*
當(dāng)Session invallid(無(wú)效)的時(shí)候穗慕,也是就調(diào)用了invalidateAndCancel 和
finishTasksAndInvalidate方法的時(shí)候要出,會(huì)調(diào)用這個(gè)代理方法
 */
- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(nullable NSError *)error;

/* 
NSURLSession接收到后臺(tái)的挑戰(zhàn)的時(shí)候鸽粉,我們要在這里進(jìn)行判斷一下
只要請(qǐng)求的地址是HTTPS的, 就會(huì)調(diào)用這個(gè)代理方法
 我們需要在該方法中告訴系統(tǒng), 是否信任服務(wù)器返回的證書
 Challenge: 挑戰(zhàn) 質(zhì)問(wèn) (包含了受保護(hù)的區(qū)域)
 protectionSpace : 受保護(hù)區(qū)域
 NSURLAuthenticationMethodServerTrust : 證書的類型是 服務(wù)器信任
 */
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
                                             completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler;

/*
 應(yīng)用在后臺(tái)净刮,而且后臺(tái)所有下載任務(wù)完成后,
 在所有其他NSURLSession和NSURLSessionDownloadTask委托方法執(zhí)行完后回調(diào)因悲,可以在該方法中做下載數(shù)據(jù)管理和UI刷新
  */
- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session API_AVAILABLE(ios(7.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);

@end

2.NSURLSessionTaskDelegate <NSURLSessionDelegate>


@protocol NSURLSessionTaskDelegate <NSURLSessionDelegate>
@optional
/*
系統(tǒng)在發(fā)起請(qǐng)求之前會(huì)調(diào)一個(gè)這個(gè)回調(diào)醉者,
然后在這個(gè)completionHandler里面你告訴系統(tǒng)這個(gè)請(qǐng)求是否要發(fā)出去玛追,是否要修改
(告訴代理現(xiàn)在將開(kāi)始加載延遲的URL會(huì)話任務(wù)。
當(dāng)具有延遲開(kāi)始時(shí)間的后臺(tái)會(huì)話任務(wù)(由earliestBeginDate屬性設(shè)置)準(zhǔn)備就緒時(shí)俱萍,將調(diào)用此方法端壳。只有在等待網(wǎng)絡(luò)負(fù)載時(shí)請(qǐng)求可能變陳舊并需要被新請(qǐng)求替換時(shí),才應(yīng)實(shí)現(xiàn)此委托方法枪蘑。
為了繼續(xù)加載损谦,委托人必須調(diào)用完成處理程序,并傳遞一個(gè)處理方式來(lái)指示任務(wù)應(yīng)該如何進(jìn)行岳颇。傳遞NSURLSessionDelayedRequestCancel處置等效于直接調(diào)用任務(wù)的取消照捡。)
*/
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                        willBeginDelayedRequest:(NSURLRequest *)request
                              completionHandler:(void (^)(NSURLSessionDelayedRequestDisposition disposition, NSURLRequest * _Nullable newRequest))completionHandler
    API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0));

/*
告訴代理,在開(kāi)始網(wǎng)絡(luò)加載之前赦役,任務(wù)正在等待麻敌,直到合適的連接可用。
 如果NSURLSessionConfiguration的waitsForConnectivity屬性為true并且沒(méi)有足夠的連接掂摔,則調(diào)用此方法术羔。 代表可以利用這個(gè)機(jī)會(huì)來(lái)更新用戶界面;
 例如通過(guò)呈現(xiàn)離線模式或僅限蜂窩模式。
 此方法最多只能在每個(gè)任務(wù)中調(diào)用一次乙漓,并且僅在連接最初不可用時(shí)調(diào)用级历。 它永遠(yuǎn)不會(huì)被調(diào)用后臺(tái)會(huì)話,因?yàn)檫@些會(huì)話會(huì)忽略waitsForConnectivity叭披。
 */
- (void)URLSession:(NSURLSession *)session taskIsWaitingForConnectivity:(NSURLSessionTask *)task
    API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0));

/* 
告訴委托遠(yuǎn)程服務(wù)器請(qǐng)求HTTP重定向寥殖。
此方法僅適用于默認(rèn)和臨時(shí)會(huì)話中的任務(wù)。 后臺(tái)會(huì)話中的任務(wù)會(huì)自動(dòng)遵循重定向涩蜘。
需要后臺(tái)返回statusCode=302/301這兩種狀態(tài)同時(shí)要配置上新的request
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                     willPerformHTTPRedirection:(NSHTTPURLResponse *)response
                                     newRequest:(NSURLRequest *)request
                              completionHandler:(void (^)(NSURLRequest * _Nullable))completionHandler;

/* 
響應(yīng)來(lái)自遠(yuǎn)程服務(wù)器的認(rèn)證請(qǐng)求嚼贡,從代理請(qǐng)求憑證。
 該方法處理任務(wù)級(jí)別的身份驗(yàn)證挑戰(zhàn)同诫。 NSURLSessionDelegate協(xié)議還提供了會(huì)話級(jí)別的身份驗(yàn)證委托方法粤策。所調(diào)用的方法取決于身份驗(yàn)證挑戰(zhàn)的類型:
對(duì)于會(huì)話級(jí)挑戰(zhàn)-NSURLAuthenticationMethodNTLM,NSURLAuthenticationMethodNegotiate误窖,NSURLAuthenticationMethodClientCertificate或NSURLAuthenticationMethodServerTrust - NSURLSession對(duì)象調(diào)用會(huì)話委托的URLSession:didReceiveChallenge:completionHandler:方法叮盘。如果您的應(yīng)用程序未提供會(huì)話委托方法秩贰,則NSURLSession對(duì)象會(huì)調(diào)用任務(wù)委托人的URLSession:task:didReceiveChallenge:completionHandler:方法來(lái)處理該挑戰(zhàn)。
對(duì)于非會(huì)話級(jí)挑戰(zhàn)(所有其他挑戰(zhàn))柔吼,NSURLSession對(duì)象調(diào)用會(huì)話委托的URLSession:task:didReceiveChallenge:completionHandler:方法來(lái)處理挑戰(zhàn)毒费。如果您的應(yīng)用程序提供會(huì)話委托,并且您需要處理身份驗(yàn)證愈魏,那么您必須在任務(wù)級(jí)別處理身份驗(yàn)證觅玻,或者提供明確調(diào)用每會(huì)話處理程序的任務(wù)級(jí)別處理程序。會(huì)話委托的URLSession:didReceiveChallenge:completionHandler:方法不針對(duì)非會(huì)話級(jí)別的挑戰(zhàn)進(jìn)行調(diào)用蝌戒。
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                            didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge 
                              completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler;

/* 
當(dāng)任務(wù)需要新的請(qǐng)求主體流發(fā)送到遠(yuǎn)程服務(wù)器時(shí)串塑,告訴委托。
這種委托方法在兩種情況下被調(diào)用:
1北苟、如果使用uploadTaskWithStreamedRequest創(chuàng)建任務(wù)桩匪,則提供初始請(qǐng)求正文流:
2、如果任務(wù)因身份驗(yàn)證質(zhì)詢或其他可恢復(fù)的服務(wù)器錯(cuò)誤需要重新發(fā)送包含正文流的請(qǐng)求友鼻,則提供替換請(qǐng)求正文流傻昙。
注:如果代碼使用文件URL或NSData對(duì)象提供請(qǐng)求主體,則不需要實(shí)現(xiàn)此功能彩扔。
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                              needNewBodyStream:(void (^)(NSInputStream * _Nullable bodyStream))completionHandler;

/* 
定期通知代理向服務(wù)器發(fā)送主體內(nèi)容的進(jìn)度妆档。(上傳進(jìn)度) 
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                                didSendBodyData:(int64_t)bytesSent
                                 totalBytesSent:(int64_t)totalBytesSent
                       totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend;

/*
 告訴代理該會(huì)話完成了該任務(wù)的收集指標(biāo)。
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));

/* 
告訴代理該任務(wù)完成傳輸數(shù)據(jù)虫碉。
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
                           didCompleteWithError:(nullable NSError *)error;

@end

3.NSURLSessionDataDelegate <NSURLSessionTaskDelegate>

@optional
/* 
告訴代理數(shù)據(jù)任務(wù)從服務(wù)器收到初始回復(fù)(headers)贾惦。
//取消加載, 與[task cancel]一致 
NSURLSessionResponseCancel = 0,   
// 繼續(xù)加載 
NSURLSessionResponseAllow = 1,    
//轉(zhuǎn)為下載                              
NSURLSessionResponseBecomeDownload = 2,  
//轉(zhuǎn)為任務(wù)流                     
NSURLSessionResponseBecomeStream API_AVAILABLE(macos(10.11), ios(9.0), watchos(2.0), tvos(9.0)) = 3
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
                                 didReceiveResponse:(NSURLResponse *)response
                                  completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler;

/* 
告訴代理數(shù)據(jù)任務(wù)已更改為下載任務(wù)。
當(dāng)委托的URLSession:dataTask:didReceiveResponse:completionHandler:方法決定將數(shù)據(jù)請(qǐng)求的處置更改為下載時(shí)敦捧,會(huì)話將調(diào)用此委托方法為你提供新的下載任務(wù)须板。 在此調(diào)用之后,會(huì)話委托不會(huì)收到與原始數(shù)據(jù)任務(wù)相關(guān)的其他委托方法調(diào)用
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
                              didBecomeDownloadTask:(NSURLSessionDownloadTask *)downloadTask;

/*
告訴委托數(shù)據(jù)任務(wù)已更改為流任務(wù)
當(dāng)委托的URLSession:dataTask:didReceiveResponse:completionHandler:方法決定將處置從數(shù)據(jù)請(qǐng)求更改為流時(shí)兢卵,會(huì)話將調(diào)用此委托方法為你提供新的流任務(wù)习瑰。 在此調(diào)用之后,會(huì)話委托不會(huì)收到與原始數(shù)據(jù)任務(wù)相關(guān)的其他委托方法調(diào)用秽荤。

對(duì)于pipelined的請(qǐng)求甜奄,流任務(wù)將只允許讀取,并且對(duì)象將立即發(fā)送委托消息URLSession:writeClosedForStreamTask :. 通過(guò)在其NSURLSessionConfiguration對(duì)象上設(shè)置HTTPShouldUsePipelining屬性窃款,或通過(guò)在NSURLRequest對(duì)象上設(shè)置HTTPShouldUsePipelining屬性來(lái)為各個(gè)請(qǐng)求設(shè)置會(huì)話中的所有請(qǐng)求课兄,可以禁用管道傳輸。
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
                                didBecomeStreamTask:(NSURLSessionStreamTask *)streamTask;

/* 
告訴代理該數(shù)據(jù)任務(wù)已經(jīng)收到了一些預(yù)期的數(shù)據(jù)晨继。 
由于NSData對(duì)象通常是由許多不同的數(shù)據(jù)對(duì)象拼湊而成的第喳,因此盡可能使用NSData的enumerateByteRangesUsingBlock:方法遍歷數(shù)據(jù),而不是使用bytes方法(將NSData對(duì)象平化為單個(gè)內(nèi)存塊)踱稍。
此委托方法可能被多次調(diào)用曲饱,并且每次調(diào)用僅提供自上次調(diào)用后收到的數(shù)據(jù)。 如果需要珠月,該應(yīng)用負(fù)責(zé)積累這些數(shù)據(jù)扩淀。
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
                                     didReceiveData:(NSData *)data;

/*
詢問(wèn)委托數(shù)據(jù)(或上傳)任務(wù)是否應(yīng)將響應(yīng)存儲(chǔ)在緩存中。
會(huì)話在任務(wù)完成接收所有預(yù)期數(shù)據(jù)后調(diào)用此委托方法啤挎。如果未實(shí)現(xiàn)此方法驻谆,則默認(rèn)行為是使用會(huì)話配置對(duì)象中指定的緩存策略。此方法的主要目的是防止特定URL的緩存或修改與URL響應(yīng)關(guān)聯(lián)的userInfo字典庆聘。
只有在處理請(qǐng)求的NSURLProtocol決定緩存響應(yīng)時(shí)才調(diào)用此方法胜臊。通常,只有滿足以下所有條件時(shí)才會(huì)緩存響應(yīng):
1伙判、請(qǐng)求是針對(duì)HTTP或HTTPS URL(或你自己的支持緩存的自定義網(wǎng)絡(luò)協(xié)議)象对。
2、請(qǐng)求成功(狀態(tài)碼在200-299范圍內(nèi))宴抚。
3勒魔、提供的響應(yīng)來(lái)自服務(wù)器,而不是緩存菇曲。
4冠绢、會(huì)話配置的緩存策略允許緩存。
5常潮、提供的NSURLRequest對(duì)象的緩存策略(如果適用)允許緩存弟胀。
6、服務(wù)器響應(yīng)中的緩存相關(guān)頭(如果存在)允許緩存喊式。
7孵户、響應(yīng)大小足夠小,可以合理地放入緩存中垃帅。 (例如延届,如果您提供磁盤緩存,則響應(yīng)不得超過(guò)磁盤緩存大小的5%贸诚。)
注:如果委托實(shí)現(xiàn)此方法方庭,則它必須調(diào)用completionHandler完成處理程序;否則,應(yīng)用程序會(huì)泄漏內(nèi)存酱固。
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
                                  willCacheResponse:(NSCachedURLResponse *)proposedResponse 
                                  completionHandler:(void (^)(NSCachedURLResponse * _Nullable cachedResponse))completionHandler;

@end

4.NSURLSessionDownloadDelegate <NSURLSessionTaskDelegate>

/* 
告訴委托下載任務(wù)已完成下載械念。
location:
臨時(shí)文件的文件URL。 由于該文件是臨時(shí)文件运悲,因此必須先打開(kāi)文件進(jìn)行閱讀或?qū)⑵湟浦翍?yīng)用程序的沙箱容器目錄中的永久位置龄减,然后才能從此委派方法返回。
如果選擇打開(kāi)文件進(jìn)行閱讀班眯,則應(yīng)該在另一個(gè)線程中進(jìn)行實(shí)際閱讀希停,以避免阻塞委托隊(duì)列烁巫。
 */
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                              didFinishDownloadingToURL:(NSURL *)location;

@optional
/* 
定期通知代理有關(guān)下載的進(jìn)度。 
 */
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                                           didWriteData:(int64_t)bytesWritten
                                      totalBytesWritten:(int64_t)totalBytesWritten
                              totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;

/*
告訴委托下載任務(wù)已經(jīng)恢復(fù)下載宠能。
filrOffest:
如果文件的緩存策略或上次修改日期阻止重新使用現(xiàn)有內(nèi)容亚隙,則該值為零。否則违崇,該值是一個(gè)整數(shù)阿弃,表示磁盤上不需要再次檢索的字節(jié)數(shù)。

如果可恢復(fù)的下載任務(wù)被取消或失敗羞延,可以請(qǐng)求resumeData對(duì)象渣淳,該對(duì)象將提供足夠的信息以重新開(kāi)始下載。稍后伴箩,你可以調(diào)用downloadTaskWithResumeData:或downloadTaskWithResumeData:completionHandler:使用該數(shù)據(jù)入愧。
當(dāng)你調(diào)用這些方法時(shí),你會(huì)得到一個(gè)新的下載任務(wù)赛蔫。只要恢復(fù)該任務(wù)砂客,會(huì)話就會(huì)使用該新任務(wù)調(diào)用其委托的URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:方法,以指示恢復(fù)下載呵恢。
 */
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                                      didResumeAtOffset:(int64_t)fileOffset
                                     expectedTotalBytes:(int64_t)expectedTotalBytes;

@end

5.NSURLSessionStreamDelegate <NSURLSessionTaskDelegate>

@optional

/* 
告訴委托底層套接字的讀取面已經(jīng)關(guān)閉鞠值。
即使當(dāng)前過(guò)程沒(méi)有讀取,也可以調(diào)用此方法渗钉。 此方法并不表示流達(dá)到end-of-file(EOF)彤恶,從而不能讀取更多數(shù)據(jù)。
*/
- (void)URLSession:(NSURLSession *)session readClosedForStreamTask:(NSURLSessionStreamTask *)streamTask;

/* 
告訴委托底層套接字的寫入端已關(guān)閉鳄橘。 
即使當(dāng)前過(guò)程沒(méi)有寫入声离,也可以調(diào)用此方法。
 */
- (void)URLSession:(NSURLSession *)session writeClosedForStreamTask:(NSURLSessionStreamTask *)streamTask;

/* 
告訴委托流已經(jīng)檢測(cè)到通往主機(jī)更好的路由
 */
- (void)URLSession:(NSURLSession *)session betterRouteDiscoveredForStreamTask:(NSURLSessionStreamTask *)streamTask;

/* 
告訴委托瘫怜,流任務(wù)已完成术徊,由于流任務(wù)調(diào)用captureStreams方法。
此委托方法僅在流任務(wù)的所有入隊(duì)讀取和寫入操作完成后才會(huì)調(diào)用鲸湃。
 */
- (void)URLSession:(NSURLSession *)session streamTask:(NSURLSessionStreamTask *)streamTask
                                 didBecomeInputStream:(NSInputStream *)inputStream
                                         outputStream:(NSOutputStream *)outputStream;

@end

參考文獻(xiàn):http://www.reibang.com/p/2ab336db172c

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赠涮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子暗挑,更是在濱河造成了極大的恐慌笋除,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炸裆,死亡現(xiàn)場(chǎng)離奇詭異垃它,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門国拇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洛史,“玉大人,你說(shuō)我怎么就攤上這事贝奇『绶疲” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵掉瞳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我浪漠,道長(zhǎng)陕习,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任址愿,我火速辦了婚禮该镣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘响谓。我一直安慰自己损合,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布娘纷。 她就那樣靜靜地躺著嫁审,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赖晶。 梳的紋絲不亂的頭發(fā)上律适,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音遏插,去河邊找鬼捂贿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胳嘲,可吹牛的內(nèi)容都是我干的厂僧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼了牛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼颜屠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起白魂,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤汽纤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后福荸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蕴坪,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了背传。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呆瞻。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖径玖,靈堂內(nèi)的尸體忽然破棺而出痴脾,到底是詐尸還是另有隱情,我是刑警寧澤梳星,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布赞赖,位于F島的核電站,受9級(jí)特大地震影響冤灾,放射性物質(zhì)發(fā)生泄漏前域。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一韵吨、第九天 我趴在偏房一處隱蔽的房頂上張望匿垄。 院中可真熱鬧,春花似錦归粉、人聲如沸椿疗。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)届榄。三九已至,卻和暖如春绢掰,著一層夾襖步出監(jiān)牢的瞬間痒蓬,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工滴劲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留攻晒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓班挖,卻偏偏與公主長(zhǎng)得像鲁捏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萧芙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容