nsurlsession上传文件
A. iOS断点续传-上传
断点上传是将文件切割成小数据片段进行上传,并记录上传进度,当上传完毕后,服务端将上传的小文件片段进行合并的过程。
采用NSFileHandle对文件数据进行逐段读取上传
要与服务端研发人员约定好上传完毕规则,区分何时上传完毕,进行文件合并。
上传采用NSURLSession/AFN等,逐段上传。
B. nsurlsession镐庝箞娣诲姞澶氢换锷
NSURLSession鎻愪緵镄勫姛鑳斤细
1.阃氲繃URL灏嗘暟鎹涓嬭浇鍒板唴瀛
2.阃氲繃URL灏嗘暟鎹涓嬭浇鍒版枃浠剁郴缁
3.灏嗘暟鎹涓娄紶鍒版寚瀹歎RL
4.鍦ㄥ悗鍙板畬鎴愪笂杩板姛鑳
宸ヤ綔娴佺▼
濡傛灉鎴戜滑闇瑕佸埄鐢∟SURLSession杩涜屾暟鎹浼犺緭鎴戜滑闇瑕侊细
1.鍒涘缓涓涓狈SURLSessionConfiguration锛岀敤浜庣浜屾ュ垱寤篘SSession镞惰剧疆宸ヤ綔妯″纺鍜岀绣缁滆剧疆锛
宸ヤ綔妯″纺鍒嗕负锛
涓鑸妯″纺锛坉efault锛夛细宸ヤ綔妯″纺绫讳技浜庡师𨱒ョ殑NSURLConnection锛屽彲浠ヤ娇鐢ㄧ紦瀛樼殑Cache锛孋ookie锛岄壌𨱒冦
鍙婃椂妯″纺锛坋phemeral锛夛细涓崭娇鐢ㄧ紦瀛樼殑Cache锛孋ookie锛岄壌𨱒冦
钖庡彴妯″纺锛坆ackground锛夛细鍦ㄥ悗鍙板畬鎴愪笂浼犱笅杞斤纴鍒涘缓Configuration瀵硅薄镄勬椂鍊欓渶瑕佺粰涓涓狈SString镄処D鐢ㄤ簬杩借釜瀹屾垚宸ヤ綔镄凷ession鏄鍝涓涓锛埚悗闱浼氲插埌锛夈
缃戠粶璁剧疆锛氩弬钥僋SURLConnection涓镄勮剧疆椤广
1. 鍒涘缓涓涓狈SURLSession锛岀郴缁熸彁渚涗简涓や釜鍒涘缓鏂规硶锛
sessionWithConfiguration:
sessionWithConfiguration:delegate:delegateQueue:
銆銆銆銆
绗涓涓绮掑害杈冧绠灏辨槸镙规嵁鍒氭墠鍒涘缓镄凛onfiguration鍒涘缓涓涓猄ession锛岀郴缁熼粯璁ゅ垱寤轰竴涓鏂扮殑OperationQueue澶勭悊Session镄勬秷鎭銆
绗浜屼釜绮掑害姣旇缉楂桡纴鍙浠ヨ惧畾锲炶皟镄刣elegate锛堟敞镒忚繖涓锲炶皟delegate浼氲寮哄紩鐢锛夛纴骞朵笖鍙浠ヨ惧畾delegate鍦ㄥ摢涓狾perationQueue锲炶皟锛屽傛灉鎴戜滑灏嗗叾璁剧疆涓篬NSOperationQueue mainQueue]灏辫兘鍦ㄤ富绾跨▼杩涜屽洖璋冮潪甯哥殑鏂逛究銆
2.鍒涘缓涓涓狈SURLRequest璋幂敤鍒氭墠镄凬SURLSession瀵硅薄鎻愪緵镄凾ask鍑芥暟锛屽垱寤轰竴涓狈SURLSessionTask銆
镙规嵁镵岃兘涓嶅悓Task链変笁绉嶅瓙绫伙细
NSURLSessionUploadTask锛氢笂浼犵敤镄凾ask锛屼紶瀹屼互钖庝笉浼氩啀涓嬭浇杩斿洖缁撴灉锛
NSURLSessionDownloadTask锛氢笅杞界敤镄凾ask锛
NSURLSessionDataTask锛氩彲浠ヤ笂浼犲唴瀹癸纴涓娄紶瀹屾垚钖庡啀杩涜屼笅杞姐
寰楀埌镄凾ask锛岃皟鐢╮esume寮濮嫔伐浣溿