-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStudy3_URLRequest.swift
More file actions
37 lines (28 loc) · 1.79 KB
/
Copy pathStudy3_URLRequest.swift
File metadata and controls
37 lines (28 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Study3_URLRequest.swift
// CodeStudy
//
// Created by Shinya Ikehara on 2026/01/24.
//
import Foundation
struct Study3_URLRequest {
//Study2をstudyとしてインスタンス化(URLComponentsの戻り値を使いたいため)
let study = Study2()
func Request() {
//makeURLは戻り値がOptional型のため、guard letでアンラップする
guard let url = study.makeURL() else{
return
}
//URLRequestのinitのデフォルト(url: URL, cachePolicy: URLRequest.CachePolicy = .useProtocolCachePolicy, timeoutInterval: TimeInterval = 60.0)
//urlにはRequestしたいURLをType:URLで
//cachePolicyは時間が足りないのでスキップします
//timeoutIntervalはRequestを開始し、経過した期間を測り、設定した値を超えるとタイムアウトする。defaultは60秒でタイムアウト設定は秒単位(0.001秒とかも可能)
//タイムアウトした場合URLError.timeOutになるため、タイムアウトした時の挙動は自分が作る(リトライやエラー表示→タイトルに戻るなど)
var request = URLRequest(url: url)
//httpMethodはstring型で、"GET","POST","PUT","PATCH","DELETE"がある。そのまま文字列としてメソッド名はRequestの先頭行に入る。
//サーバー側も文字列で"GET","POST"...を読み取る。
//stringだとタイプミスなどがあるため、開発ではenumで管理するのが定番(らしい)
//enumで管理する場合、enum HTTPMethod: String {"GET","POST",.....}となり、生の値を取り出さないといけないためHTTPMethod.GET.rawValue(.rawValue)で"GET"を取り出す
request.httpMethod = "GET"
}
}