今天來介紹使用API會用到NSURLSession
其實NSURLSession 與 URLSession是相同的
只是一個是OC的名稱,一個是Swift的名稱
Session(會話層)
是什麼?
原本是指OSI網路分層中的會話層
會話層負責什麼樣子的東西呢?
→ 建立與別的端點的連線、維護、刪除
我們使用URLSession做些什麼?
能夠透過URLSession與網路互動
包括:下載以及上傳
URLSession能透過Task
作為要與網路互動的方式
URLSessionDataTask
URLSessionDownloadTask
URLSessionUploadTask
Task物件能夠
對應上面三個Task
DataTask
的code示範:這個範例會使用shared,什麼是shared?
URLSession.shared為一個 Singleton,為Default的Configuration,故沒有Configuration 物件(後面會談到),因為並非客製化的URLSession,會是使用上最簡單的一種方式
URLSession.shared.dataTask(with:url){(data,response,error) in
//檢驗下載下來的data是不是跟你所想的一樣是個JSON
if let data = data, let content = String(data:data, encoding: .utf8){
// 會印出跟你所想一樣的JSON
print(content)
}
}
URLSession裡面還包括了URLSessionConfiguration
URLSessionConfiguration是一個物件,用來作為設定:
這些設定都源自於Configuration的三大狀態:
看到下面的圖片,能夠知道一個Session其實能夠不只使用一個Task
這張圖為一般瀏覽與私密瀏覽的區別,都是透過URLSession建立,但是私密瀏覽瀏覽不會儲存
Cache,所以在URLSessionConfiguration的設定下會是.ephemeral
參考連結
Apple Developer Documentation