iPhone模拟器访问本地主机服务器
问题描述:
我试图得到休息的数据iOS应用,我使用此代码:iPhone模拟器访问本地主机服务器
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模拟器访问我的服务器?
答
确保您的Mac的IP为192.168.0.1。所以,你的网址可能是
var rest_url = "http://YOUR MAC IP:8000/rest/users/"
+0
我运行与端口8000,192.168.0.13 python服务器,我尝试与该网址,并与127.0.0.1:8000,但没有任何工作: /'操作无法完成。 (NSURLErrorDomain error -1004。) JSON错误操作无法完成。 (可可错误3840.) 致命错误:意外地发现零,而解包可选值' – 2014-09-06 17:06:04
答
可能是你可以使用本地主机192.168.0.1替换,与iOS模拟器调试时(也就是真正的设备应该用你的服务器的IP)。
我也无法在模拟器上使用IP地址访问我的测试服务器。但是当我使用本地主机或120.0.0.1时,模拟器可以很好地与我的测试服务器配合使用。
答
您的Info.plist文件中是否包含App Transport Security Settings? 如果没有那么对于调试目的,你可以将它们像
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
这样的设置允许发出请求到任何服务器。 但是不要将它们用于发布版本。
本地主机是'127.0.0.1'。您的网络服务器可能仅在该IP上进行侦听。 – 2014-09-06 16:34:27
'操作无法完成。 (NSURLErrorDomain error -1004。) JSON错误操作无法完成。 (可可错误3840.) 致命错误:意外地发现零,而解包可选值' – 2014-09-06 17:06:52