การส่ง HTTP Request ใน iOS ใช้ URLSession และ URLSessionDataTask ต้องสร้าง Configuration, Session, URL, Request และ DataTask
ขั้นตอนการสร้าง POST Request
1. สร้าง Session Object
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
2. สร้าง URL Request แบบ POST
let url = URL(string: URLString)
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
3. สร้างและรัน DataTask
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: // 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 = "POST"
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 บางตัว