【Swift】URLSessionについて

Swift

URLSessionとは

関連するネットワーク データ転送タスクのグループを調整するオブジェクトです。

アプリは 1 つ以上のURLSessionインスタンスを作成し、それぞれが関連するデータ転送タスクのグループを調整します。たとえば、Web ブラウザーを作成している場合、アプリはタブまたはウィンドウごとに 1 つのセッションを作成するか、インタラクティブな使用のために 1 つのセッションを作成し、バックグラウンド ダウンロード用に別のセッションを作成することがあります。各セッション内で、アプリは一連のタスクを追加します。各タスクは、特定の URL に対する要求を表します (必要に応じて HTTP リダイレクトに従います)。

URLSession | Apple Developer Documentation
An object that coordinates a group of related, network data transfer tasks.

例文

UrlSessionは、デフォルトのセッション、エフェメラルセッション、バックグラウンドセッションの3つの種類があり、それぞれ異なる目的に使用されます。

デフォルトのセッション

永続的なキャッシュや認証情報を利用するために使用されます。

エフェメラルセッション

キャッシュやクッキーを保存しない一時的なセッションで、プライバシーに関連するリクエストに使用されます。

バックグラウンドセッション

アプリがバックグラウンドで実行されている場合にもネットワークが途切れないセッションです。

デフォルトのセッションの作成

let url = URL(string: "https://example.com")!

let task = URLSession.shared.dataTask(with: url) { (data, response, error) in

    // 処理結果を取得する

}

task.resume()

エフェメラルセッションの作成

let configuration = URLSessionConfiguration.ephemeral

let session = URLSession(configuration: configuration)

let url = URL(string: "https://example.com")!

let task = session.dataTask(with: url) { (data, response, error) in

    // 処理結果を取得する

}

task.resume()

バックグラウンドセッションの作成

let configuration = URLSessionConfiguration.background(withIdentifier: "com.example.background")

let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)

let url = URL(string: "https://example.com")!

let task = session.downloadTask(with: url)

task.resume()

Buy me a coffee!

Swiftアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました