การสร้าง HTTP request ใน iOS ใช้ URLSession และ URLSessionDataTask ขั้นตอนหลัก: สร้าง configuration, session, URL, request, และ dataTask รองรับทุก HTTP method (GET, POST, PUT, DELETE)
ขั้นตอนการสร้าง Request
1. สร้าง Session
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
2. สร้าง URL Request (ตัวอย่าง DELETE)
let url = URL(string: URLString)!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
3. สร้างและรัน Data Task
let dataTask = session.dataTask(with: url) { data, response, error in
guard let httpResponse = response as? HTTPURLResponse,
let receivedData = data else {
print("error: not a valid http response")
return
}
switch httpResponse.statusCode {
case 200:
// success
break
case 400:
// bad request
break
default:
break
}
}
dataTask.resume()
ฟังก์ชันครบถ้วน
func hitAPI(for URLString: String) {
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
let url = URL(string: URLString)!
var request = URLRequest(url: url)
request.httpMethod = "DELETE"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let dataTask = session.dataTask(with: url) { data, response, error in
guard let httpResponse = response as? HTTPURLResponse,
let receivedData = data else {
print("error: not a valid http response")
return
}
switch httpResponse.statusCode {
case 200: break
case 400: break
default: break
}
}
dataTask.resume()
}
หมายเหตุ: อาจต้องตั้งค่า App Transport Security ใน Info.plist เพื่อเข้าถึง API บางตัว