TIC TCP Conn在我的手机上运行Swift项目时失败

Ast*_*ter 17 ios swift

我是Swift的新手.我构建了一个在模拟器上工作正常的简单应用程序.我在我的设备上运行相同的程序(带有iOS 11.0.2的iPhone 6s)并且无法连接到服务器.

得到这些错误:

2017-10-26 18:16:02.489134-0400 myproj[1451:206438] TIC TCP Conn Failed [1:0x1c0176800]: 1:61 Err(61)
2017-10-26 18:16:02.489771-0400 myproj[1451:206438] Task <0C30ADDC-4A0E-4815-A701-2EF0A7CF5F04>.<1> HTTP load failed (error code: -1004 [1:61])
2017-10-26 18:16:02.490293-0400 myproj[1451:206440] Task <0C30ADDC-4A0E-4815-A701-2EF0A7CF5F04>.<1> finished with error - code: -1004
Run Code Online (Sandbox Code Playgroud)

请帮我理解这个错误.

编辑:

以下是调用服务器的代码:

func postRequest(postData: NSDictionary, postHeaders: NSDictionary, endPoint: String,
                 onComplete: @escaping ((NSDictionary)->Void), callbackParams: NSDictionary = NSMutableDictionary()) {
    let url:URL = baseUrl.appendingPathComponent(endPoint)
    let session = URLSession.shared
    let request = NSMutableURLRequest(url: url)
    request.httpMethod = "POST"
    request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
    var paramString = ""
    for (key, value) in postData{
        paramString = paramString + (key as! String) + "=" + (value as! String) + "&"
    }

    request.allHTTPHeaderFields = postHeaders as? [String : String]
    request.httpBody = paramString.data(using: String.Encoding.utf8)

    let task = session.dataTask(with: request as URLRequest, completionHandler: {
        (data, response, error) in
        guard let _:Data = data, let _:URLResponse = response  , error == nil else {
            return}
        let json: Any?
        do {
            json = try JSONSerialization.jsonObject(with: data!, options: [])
        }
        catch {
            return
        }
        var serverResponse = json as? NSDictionary
        DispatchQueue.main.async{
            for (key, value) in serverResponse!{
                callbackParams.setValue(value, forKey: key as! String)
            }
            onComplete(callbackParams)
        }
    })
    task.resume()
}
Run Code Online (Sandbox Code Playgroud)

编辑:

添加info.plist的屏幕截图,我已将其中的Allow Arbitrary Loads设置为True,如其他帖子中所示,但未解决 谢谢!

Rob*_*Rob 35

错误-1004是URLError.cannotConnectToHost.由于某种原因,它无法连接到服务器.

在评论中,您说URL是http://127.0.0.1.也就是说localhost,当前的机器.如果您在物理电话上使用该URL,它将在手机上查找Web服务器.大声笑.它适用于模拟器,因为模拟器你的计算机,localhost.

您需要一个iPhone可以解析为运行Web服务的计算机的URL.例如,找出在本地网络上运行Web服务的计算机的IP,确保您的iPhone在同一网络上的wifi上,然后在LAN上使用该唯一的IP号码(可能更像是192.168.0.X).

  • 发生在我们最好的人身上.我做了同样的事情大约30分钟,这个答案救了我.+1 (2认同)