我正在尝试将休息数据提供给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模拟器访问我的服务器?
确保您的Mac IP为192.168.0.1。所以你的网址可能是
var rest_url = "http://YOUR MAC IP:8000/rest/users/"
您的Info.plist文件中是否有应用程序传输安全设置?如果没有,那么为了调试目的你可以设置它们
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
此类设置允许向任何服务器发出请求。但是不要为发布版本这样做。这是不安全的。
当使用ios模拟器进行调试时(也就是说,真实设备应该使用服务器的IP),可能是你可以用localhost替换192.168.0.1。
我也无法在模拟器上使用IP地址访问我的测试服务器。但是当我使用localhost或120.0.0.1时,模拟器可以很好地与我的测试服务器一起使用。
如果您在运行iOS模拟器的计算机上运行服务器,则需要选择“http://127.0.0.1”作为URL。
在你的情况下,它将是:
var rest_url = "http://127.0.0.1:8000/rest/users/"