Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS의 Swift에서 외부 호스트를 Ping하는 방법은 무엇입니까?

<시간/>

때때로 외부 웹사이트를 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()
      }
   }
}

위의 코드를 실행하면 콘솔에 "The host is up and running")이 인쇄되는 것을 볼 수 있습니다.

iOS의 Swift에서 외부 호스트를 Ping하는 방법은 무엇입니까?

또는 UI에 버튼을 만들고 해당 버튼을 탭하면 요청이 실행되고 텍스트 필드에도 인쇄할 수 있습니다.