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

Làm thế nào để Ping Máy chủ bên ngoài từ Swift trong iOS?

Đôi khi, bạn có thể yêu cầu ping một trang web bên ngoài và kiểm tra xem nó có hoạt động hay không trước khi thực hiện bất kỳ yêu cầu xử lý hoặc kích hoạt nào.

Ở đây chúng ta sẽ xem cách kiểm tra xem trang web bên ngoài có đang hoạt động hay không.

Hãy bắt đầu bằng cách Tạo dự án mới

Bước 1 - Mở Xcode → Dự án mới → Ứng dụng một lần xem → Đặt tên cho nó là “PingMe”

Bước 2 - Mở ViewController.swift và thêm hàm checkIsConnectedToNetwork () và thêm mã sau.

func checkIsConnectedToNetwork() {
   let hostUrl: String = "https://google.com"
   if let url = URL(string: hostUrl) {
      var request = URLRequest(url: url)
      request.httpMethod = "HEAD"
      URLSession(configuration: .default)
      .dataTask(with: request) { (_, response, error) -> Void in
         guard error == nil else {
            print("Error:", error ?? "")
            return
         }
         guard (response as? HTTPURLResponse)?
         .statusCode == 200 else {
            print("The host is down")
            return
         }
         print("The host is up and running")
      }
      .resume()
   }
}

Bước 3 - Bây giờ hãy gọi hàm này từ phương thức viewDidLoad.

Mã cuối cùng của bạn sẽ trông như thế nào

import UIKit
class ViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
      self.checkIsConnectedToNetwork()
   }
   func checkIsConnectedToNetwork() {
      let hostUrl: String = "https://google.com"
      if let url = URL(string: hostUrl) {
         var request = URLRequest(url: url)
         request.httpMethod = "HEAD"
         URLSession(configuration: .default)
         .dataTask(with: request) { (_, response, error) -> Void in
            guard error == nil else {
               print("Error:", error ?? "")
               return
            }
            guard (response as? HTTPURLResponse)?
            .statusCode == 200 else {
               print("The host is down")
               return
            }
            print("The host is up and running")
         }
         .resume()
      }
   }
}

Khi chạy mã trên, bạn có thể thấy ("Máy chủ lưu trữ đang hoạt động") được in trên bảng điều khiển của bạn.

Làm thế nào để Ping Máy chủ bên ngoài từ Swift trong iOS?

Ngoài ra, bạn có thể tạo một nút trên giao diện người dùng và khi nhấn vào nút đó sẽ kích hoạt một yêu cầu và cũng có thể in trên trường văn bản.