2017-05-31 14 views
5

Comment vérifier l'accessibilité d'un site Web particulier?Swift, Vérifiez si un site Web particulier est joignable

Je suis connecté au réseau wifi pour l'accès à Internet, ce qui bloque certains sites. Comment vérifier si j'ai accès à ces sites ou non?

J'ai vérifié avec la classe Reachability, mais je ne peux pas vérifier pour un site web particulier.

Actuellement, je suis en utilisant Reachability.swift

+0

Découvrez cette réponse https://stackoverflow.com/a/9617166/3066450 – ebby94

+2

Quelle est votre définition de « accessible »? Même les sites bloqués ont tendance à renvoyer une sorte de page vous indiquant que la page a été bloquée. Donc, tout contrôle de base donnera l'impression que la page est "joignable". – rmaddy

+0

@rmaddy: C'est l'expiration du délai d'attente. – Meghan

Répondre

-2

L'initialisateur que vous souhaitez utiliser est indiquée sur cette page.

Vous passez le nom d'hôte en tant que paramètre:

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

son affichage est également accessible au site bloqué. – Meghan

0

Je ne sais pas quelle est la meilleure pratique, mais j'utiliser HTTP request pour le faire.

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

Ceci télécharge la page entière au lieu de simplement vérifier la disponibilité. – Moritz

+1

Comment cela vérifie-t-il si une page est bloquée ou non? Le délai d'attente de 1 seconde donne l'impression que la plupart des pages ne sont pas accessibles si la page prend plus d'une seconde à télécharger ou si l'accès de l'utilisateur est un peu lent. – rmaddy