2016-10-11 4 views
-1

Я думал проверить свой URL-адрес перед выполнением вызова веб-службы, если есть недостающая страница или сервер, URL-адрес не будет доступен для примера, если я помещу неправильный URL-адрес i получить это:Swift как проверить URL-адрес

NSURLErrorDomain Code = -1003

Так что я wan't проверить в URL перед вызовом моего SOAP WebService, и я хочу, чтобы получить код статуса, если статус равен 200 я буду делать звоните, кто-то знает, как это сделать?

+1

Я не понимаю почему вам нужно будет сделать отдельный звонок? Если ваш веб-сервис недоступен из-за проблем с сетью или что-то еще, вы все равно не получите 200. –

+0

Если вы * получите это *, вы действительно проверяете URL-адрес. Просто обработайте ошибку должным образом. – vadian

+0

@JacobKing Мне нужно использовать эту функцию для другого класса, например rss-парсер – Ben

ответ

0

из документации на яблоко, я нашел некоторую информацию и думаю, что это поможет вам. https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html

Вы можете проверить их, соответственно, начав уведомителя с этим:

let wifiReachability = Reachability. reachabilityForLocalWiFi() 
wifiReachability.startNotifier() 

let internetReachability = Reachability.reachabilityForInternetConnection() 
hostReachability.startNotifier() 

let hostReachability = Reachability(hostName:"www.apple.com") 
hostReachability.startNotifier() 
+0

Reachability.verifyUrl по-прежнему возвращает true – Ben

0

Swift 3 Обычно я использую это, чтобы проверить соединение и скорость:

let url = URL(string: "http://......jpg") // image on web server to check the speed 
    let request = URLRequest(url: url!) 

    let session = URLSession.shared   

    let startTime = Date() 

    let task = session.dataTask(with: request) { (data, resp, error) in 

     guard error == nil && data != nil else{ 



      print("connection error or data is nill\(error)") 

      return 
     } 

     guard resp != nil else{ 

      print("respons is nill") 
      return 
     } 




      let length = CGFloat((resp?.expectedContentLength)!)/1000000.0 

      print(length) 



     let elapsed = CGFloat(Date().timeIntervalSince(startTime)) 

     print("elapsed: \(elapsed)") 

     print("Speed: \(length/elapsed) Mb/sec")