Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

วิธีการ Ping โฮสต์ภายนอกจาก Swift ใน iOS


บางครั้งคุณอาจต้อง ping เว็บไซต์ภายนอกและตรวจสอบว่าเว็บไซต์ทำงานอยู่หรือไม่ก่อนที่คุณจะดำเนินการประมวลผลหรือดำเนินการตามคำขอดังกล่าว

เราจะมาดูวิธีการตรวจสอบว่าเว็บไซต์ภายนอกทำงานอยู่หรือไม่

เรามาสร้างโปรเจกต์ใหม่กันเถอะ

ขั้นตอนที่ 1 - เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "PingMe"

ขั้นตอนที่ 2 - เปิด ViewController.swift และเพิ่มฟังก์ชัน 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()
   }
}

ขั้นตอนที่ 3 - เรียกใช้ฟังก์ชันนี้จากเมธอด viewDidLoad

รหัสสุดท้ายของคุณควรมีลักษณะดังนี้

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()
      }
   }
}

เมื่อคุณเรียกใช้โค้ดด้านบน คุณจะเห็น ("โฮสต์กำลังทำงานอยู่") ถูกพิมพ์บนคอนโซลของคุณ

วิธีการ Ping โฮสต์ภายนอกจาก Swift ใน iOS

คุณสามารถสร้างปุ่มบน UI และเมื่อแตะที่ปุ่มนั้นเพื่อทำการร้องขอ และสามารถพิมพ์บนฟิลด์ข้อความได้เช่นกัน