Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS Simple rest API可以在模拟器中工作,但不能在任何设备上工作_Ios_Swift_Rest - Fatal编程技术网

IOS Simple rest API可以在模拟器中工作,但不能在任何设备上工作

IOS Simple rest API可以在模拟器中工作,但不能在任何设备上工作,ios,swift,rest,Ios,Swift,Rest,此代码在模拟器iPhone8 Plus上按预期运行,但在运行到iPhone8 Plus或iPhone6时,此控制台日志失败,结果很奇怪。Mac和两款运行当前操作系统版本的iPhone import UIKit let DomainURL = "http://museum-dev.williams.edu:3003/id?labID=" class artObject : Codable { var ObjectID : Int? var ObjectName : String

此代码在模拟器iPhone8 Plus上按预期运行,但在运行到iPhone8 Plus或iPhone6时,此控制台日志失败,结果很奇怪。Mac和两款运行当前操作系统版本的iPhone

import UIKit

let DomainURL = "http://museum-dev.williams.edu:3003/id?labID="

class artObject : Codable {
    var ObjectID : Int?
    var ObjectName : String?
    var Creators : String?
    var Medium : String?
    var Titles : String?
    var LabelUUID : String?

    static func fetch(withID id : String){
        let urlString = DomainURL + "\(id)"
        print("urlString is \(urlString)")

        if let url = URL(string: urlString) {
            let task = URLSession.shared.dataTask(with: url, completionHandler: { (data,response,error) in
                print(String(data: data!,encoding: .ascii) ?? "no data")

                if let newArtObj = try? JSONDecoder().decode(artObject.self, from: data!) {
                    print(newArtObj.Medium ?? "no url")
                }


            })
            task.resume()
        }
    }
}

class ViewController: UIViewController {


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        artObject.fetch(withID: "E8EE71C6F5822")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

URL字符串是

2018-09-14 09:47:45.384385-0400 RestFul[330:16235][]tcp_定时器tcp[1]重新传输SYN 3
2018-09-14 09:47:46.389844-0400 RestFul[330:16235][]tcp_定时器tcp[1]重新传输SYN 4
2018-09-14 09:47:47.395361-0400 RestFul[330:16236][]tcp_定时器tcp[1]重新传输SYN 5
2018-09-14 09:47:49.398078-0400 RestFul[330:16234][]tcp_定时器tcp[1]重新传输SYN 6
2018-09-14 09:47:53.403567-0400 RestFul[330:16236][]tcp_定时器tcp[1]重新传输SYN 7
2018-09-14 09:48:00.098736-0400 RestFul[330:16150]状态栏找不到缓存的时间字符串映像。渲染过程中。
2018-09-14 09:48:01.409005-0400 RestFul[330:16234][]tcp_定时器tcp[1]重新传输SYN 8
2018-09-14 09:48:17.412384-0400 RestFul[330:16236][]tcp_定时器tcp[1]重新传输SYN 9
2018-09-14 09:49:00.722310-0400 RestFul[330:16520]TIC TCP连接失败[1:0x1d4168700]:1:50错误(50)
2018-09-14 09:49:00.722701-0400休息[330:16236]任务。已完成,但出现错误-代码:-1001
2018-09-14 09:49:00.724537-0400休息[330:16520]任务。HTTP加载失败(错误代码:-1009[1:50])

尝试在info.plist中设置以下键

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

在生产中,不建议这样做。它将允许您的应用程序调用不安全的url。您需要的是有效的ssl证书。

请尝试在info.plist中设置以下密钥

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

在生产中,不建议这样做。它将允许您的应用程序调用不安全的url。您需要的是有效的ssl证书。

您是否为http加载设置了传输安全?请将您的设备置于移动数据上并进行检查。我现在已经准备好了,谢谢您的建议。很高兴看到人们多么渴望帮助。我理解允许任意加载的必要性。我的网络错误是因为我在实际设备上测试时忘记在iPhone上启用必要的VPN。您是否为http加载设置了传输安全?将您的设备置于移动数据上并检查。我现在已经准备好了,谢谢您的建议。很高兴看到人们多么渴望帮助。我理解允许任意加载的必要性。我的网络错误是因为我在实际设备上测试时忘记在iPhone上启用必要的VPN。你应该解释他为什么要设置密钥。@ClausJørgensen给我一分钟:)你应该解释他为什么要设置密钥。@ClausJørgensen给我一分钟:)