【Swift】ライブラリを使用しないHTTPリクエストの実装方法

目次

URLSessionとは

Foundationに含まれる機能で、通常のHTTP通信なら問題なくできます。

サンプルコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let url = URL(string: "https://qiita.com/api/v2/items?query=swift")!

var request = URLRequest(url: url) // パラメーターを設定するのでvarで定義

let task = URLSession.shared.dataTask(with: request){ (data,response,error) in
guard let data = data else {return} // nilチェックと代入
do {
let object = try JSONSerialization.jsonObject(with: data, options: [])
print("通信成功")
} catch let e {
print("通信失敗")
print(e)
}
}

task.resume()

解説

  1. URL型の変数を生成
    1
    let url = URL(string: "https://qiita.com/api/v2/items?query=swift")!
  2. URLRequestを生成
    パラメーターを設定する場合は、varで定義する
    1
    var request = URLRequest(url: url)  
  3. 必要なパラメーターを付与(必要な場合)
  • guard : nilチェックと代入を行います。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let task = URLSession.shared.dataTask(with: request){ (data,response,error) in
    guard let data = data else {return} // nilチェックと代入
    do {
    let object = try JSONSerialization.jsonObject(with: data, options: [])
    print("通信成功")
    } catch let e {
    print("通信失敗")
    print(e)
    }
    }
  1. URLSessionを開始
    resurmeでTaskを実行します。 : https://developer.apple.com/documentation/foundation/urlsessiontask/1411121-resume
    1
    task.resume()
  • (非同期)レスポンスで受け取ったdata, response, errorの処理を行う

参考

【Swift】ライブラリを使用しないHTTPリクエストの実装方法

https://blog.djima.net/2021/06/30/【Swift】ライブラリを使用しないHTTPリクエストの実装方法/

Author

Daiki Iijima

Posted on

2021-06-30

Updated on

2024-04-17

Licensed under