Swift:
HTTPリクエストの送信
How to: (どのように実行するか)
SwiftでHTTPリクエストを送る方法は、URLSession
クラスを利用することです。以下はGETリクエストのサンプルコードです。
import Foundation
let url = URL(string: "https://api.example.com/data")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// エラーハンドリング
if let error = error {
print("Error: \(error)")
return
}
// レスポンスの確認とデータの使用
if let response = response as? HTTPURLResponse, response.statusCode == 200 {
if let data = data, let dataString = String(data: data, encoding: .utf8) {
print("Received data:\n\(dataString)")
}
} else {
print("HTTP Request failed")
}
}
task.resume()
サンプル出力:
Received data:
{"example":"This is a JSON response."}
Deep Dive (深掘り)
HTTPリクエストは、ウェブの基盤となり、1990年代初頭に誕生しました。URLSession
はiOS 7以降に利用可能で、それ以前にはNSURLConnection
が使われていました。代替手段として、サードパーティ製ライブラリAlamofire
がありますが、小規模なプロジェクトではSwift標準の機能で十分です。URLSession
は複数の設定をカスタマイズでき、例えばタイムアウト、キャッシュポリシー、ヘッダーの指定等を行うことができます。