2017-05-31 4 views
5

Wie kann man die Erreichbarkeit einer bestimmten Website überprüfen?Swift, Überprüfen Sie, ob bestimmte Websites erreichbar sind

Ich bin mit WiFi-Netzwerk für den Internetzugang verbunden, die einige Websites blockiert haben. Wie überprüfe ich, ob ich Zugang zu diesen Seiten habe oder nicht?

Ich habe mit Erreichbarkeitsklasse überprüft, aber ich kann nicht für bestimmte Website überprüfen.

Derzeit bin ich mit Reachability.swift

+0

Schauen Sie sich diese Antwort https://stackoverflow.com/a/9617166/3066450 – ebby94

+2

Was ist Ihre Definition von "erreichbar"? Selbst blockierte Seiten geben eine Art von Seite zurück, die Ihnen mitteilt, dass die Seite blockiert wurde. Jede grundlegende Überprüfung wird also den Eindruck erwecken, dass die Seite "erreichbar" ist. – rmaddy

+0

@rpaddy: Es zeigt Timeout. – Meghan

Antwort

-2

Die initializer Sie verwenden möchten auf dieser Seite aufgeführt ist.

Sie übergeben den Hostnamen als Parameter:

init?(hostname: String) 
// example 
Reachability(hostname: "www.mydomain.com") 
+0

seine Darstellung auch für blockierte Seite erreichbar. – Meghan

0

Ich weiß nicht, was die beste Praxis ist, aber ich benutze HTTP request dies zu tun.

func checkWebsite(completion: @escaping (Bool) -> Void) { 
    guard let url = URL(string: "yourURL.com") else { return } 

    var request = URLRequest(url: url) 
    request.timeoutInterval = 1.0 

    let task = URLSession.shared.dataTask(with: request) { data, response, error in 
     if let error = error { 
      print("\(error.localizedDescription)") 
      completion(false) 
     } 
     if let httpResponse = response as? HTTPURLResponse { 
      print("statusCode: \(httpResponse.statusCode)") 
      // do your logic here 
      // if statusCode == 200 ... 
      completion(true) 

     } 
    } 
    task.resume() 
} 
+0

Dies lädt die gesamte Seite herunter, anstatt nur nach Verfügbarkeit zu suchen. – Moritz

+1

Wie überprüft dies, ob eine Seite blockiert ist oder nicht? Die Zeitüberschreitung von 1 Sekunde lässt es so aussehen, als wären die meisten Seiten nicht erreichbar, wenn die Seite mehr als eine Sekunde zum Herunterladen benötigt oder der Zugriff des Benutzers etwas langsam ist. – rmaddy

Verwandte Themen