2014-09-06 3 views
3

내가 응용 프로그램을 IOS 데이터를 휴식을 얻기 위해 노력하고, 나는이 코드를 사용합니다iOS 시뮬레이터 액세스 로컬 호스트 서버

var rest_url = "http://192.168.0.1:8000/rest/users/" 

    let url: NSURL = NSURL(string: rest_url) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in 
    if(error != nil) { 
     println(error.localizedDescription) 
    } 
    println(data) 
    var err: NSError? 

    var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary! 

을하지만 난 이런 내 서버에 액세스 할 수 있다고 생각은 누구나 할 수있는 방법을 알고 ios 시뮬레이터에서 내 서버에 액세스합니까?

+0

로컬 호스트는 '127.0.0.1'입니다. 귀하의 웹 서버는 아마 그 IP에서만 듣고 있습니다. –

+0

'작업을 완료 할 수 없습니다. (NSURLErrorDomain error -1004) <> JSON 오류 작업을 완료 할 수 없습니다. (코코아 오류 3840. 치명적인 오류 : 선택 값을 unwrapping하는 동안 예기치 않게 nil이 발견되었습니다. ' –

답변

2

Mac의 IP가 192.168.0.1인지 확인하십시오. 그래서 URL이

var rest_url = "http://YOUR MAC IP:8000/rest/users/" 
+0

포트 8000을 사용하여 192.168.0.13에서 파이썬 서버를 실행하고, 해당 URL로 tryed하고 127.0.0.1:8000으로 실행했지만 아무 것도 작동하지 않습니다. /'작업을 완료 할 수 없습니다. (NSURLErrorDomain error -1004) <> JSON 오류 작업을 완료 할 수 없습니다. (코코아 오류 3840. 치명적인 오류 : 예기치 않게 nil 선택 값을 unwrapping 동안 발견 –

0

(즉, 실제 장치가 서버의 IP를 사용해야입니다) IOS 시뮬레이터 디버깅 할 때, 로컬 호스트와 192.168.0.1을 대체 할 수 있음이 될 수 있습니다.

또한 시뮬레이터에서 IP 주소를 사용하여 테스트 서버에 액세스 할 수 없습니다. 그러나 localhost 또는 120.0.0.1을 사용할 때 시뮬레이터는 테스트 서버와 잘 작동 할 수 있습니다.

2

Info.plist 파일에 앱 전송 보안 설정이 있습니까? 에는 다음의 목적을 디버깅하기 위해 당신이

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 

이러한 설정처럼 그들을 설정할 수없는 경우 모든 서버에 요청을 발행 할 수 있습니다. 그러나 릴리스 버전에는 사용하지 마십시오.

관련 문제