Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีส่ง HTTP POST Request ในแอป iOS ด้วย Swift

การส่ง 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 บางตัว