2016-10-11 2 views
-1

웹 서비스 호출을하기 전에 URL을 확인하려고했는데 페이지가 누락되거나 서버가 다운 된 경우 URL을 잘못 입력하면 URL이 액세스 할 수 없습니다. 이 얻을 :신속한 URL 확인 방법

NSURLErrorDomain 코드를 = -1003

그래서 난 내 SOAP의 웹 서비스를 호출하기 전에 URL을 확인 wan't하고, 상태가 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

스위프트 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")