Computer >> Máy Tính >  >> Lập trình >> IOS

Làm cách nào để thực hiện yêu cầu HTTP POST trên Ứng dụng iOS bằng Swift?

Để thực hiện yêu cầu http trong iOS, chúng tôi sẽ sử dụng DataTask và các phiên. Chúng tôi sẽ tạo các đối tượng cấu hình, phiên, url, yêu cầu và dataTask. Hãy xem các bước mà chúng ta sẽ thực hiện.

  • Trước hết, chúng ta cần tạo một đối tượng phiên, cấu hình mặc định.

let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
  • Sau đó, chúng ta cần tạo một Yêu cầu URL thuộc loại mà chúng ta cần, nó có thể là lấy, đăng, xóa hoặc đặt. Trong ví dụ này, chúng ta thấy loại "ĐĂNG".

let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
  • Khi chúng tôi đã tạo đối tượng yêu cầu, chúng tôi cần cải thiện dataTask, với URL mà chúng tôi vừa tạo ở trên. Đây là cách phương thức dataTask hoàn chỉnh của chúng ta sẽ trông giống như bây giờ.

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 response.
         break
      case 400:
         break
      default:
         break
   }
}
dataTask.resume()
  • Bây giờ chúng ta có thể nhúng cái này vào một hàm và sử dụng trong mã của chúng ta.

func hitAPI(_for URLString:String) {
   let configuration = URLSessionConfiguration.default
   let session = URLSession(configuration: configuration)
   let url = URL(string: URLString)
   //let url = NSURL(string: urlString as String)
   var request : URLRequest = 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
      // 1: Check HTTP Response for successful GET request
      guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
      else {
         print("error: not a valid http response")
         return
      }
      switch (httpResponse.statusCode) {
         case 200:
            //success response.
            break
         case 400:
            break
         default:
            break
      }
   }
   dataTask.resume()
}

Lưu ý :Bạn có thể cần cho phép các ngoại lệ Bảo mật truyền tải trong tệp info.plist của mình để truy cập một số API.

Không có đầu ra nào được hiển thị với ví dụ này vì cần có API để đăng một số dữ liệu.