ios模拟器访问localhost服务器

问题描述 投票:5回答:4

我正在尝试将休息数据提供给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模拟器访问我的服务器?

ios swift localhost nsurlsession
4个回答
3
投票

确保您的Mac IP为192.168.0.1。所以你的网址可能是

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

3
投票

您的Info.plist文件中是否有应用程序传输安全设置?如果没有,那么为了调试目的你可以设置它们

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

此类设置允许向任何服务器发出请求。但是不要为发布版本这样做。这是不安全的。


0
投票

当使用ios模拟器进行调试时(也就是说,真实设备应该使用服务器的IP),可能是你可以用localhost替换192.168.0.1。

我也无法在模拟器上使用IP地址访问我的测试服务器。但是当我使用localhost或120.0.0.1时,模拟器可以很好地与我的测试服务器一起使用。


0
投票

如果您在运行iOS模拟器的计算机上运行服务器,则需要选择“http://127.0.0.1”作为URL。

在你的情况下,它将是:

var rest_url = "http://127.0.0.1:8000/rest/users/"
© www.soinside.com 2019 - 2024. All rights reserved.