如何在 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()
}
}
}執行上述程式碼時,您可以看到控制檯中列印著 (“該主機正在執行”)。
![]()
此外,您還可以在 UI 上建立一個按鈕,並單擊該按鈕來發送請求,還可以列印在文字欄位中。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP