如何在Swift 3.0中调用REST服务

4
我需要调用简单的REST客户端https://httpbin.org/ip,并将JSON结果粘贴到iOS设备的标签字段中。 我正在使用XCode 8.0编写,Swift版本为3.0。 我找到了许多教程,但它们都是为旧版Swift编写的。编译器失败了,我无法修复它。看起来新版本有重大变化。 请问是否能提供一个可行的示例。非常感谢。
在这个示例中,我期望看到REST调用并读取结果。
1个回答

0
你可以尝试这个,它运行良好。
   @IBOutlet weak var ipLabel: UILabel!

      override func viewDidLoad() {
         super.viewDidLoad()
         let parseData = parseJSON(getJSON("https://httpbin.org/ip"))
         let ipvalue = parseData.valueForKey("origin")
         self.performSelectorOnMainThread(#selector(ViewController.updateIPlbl(_:)), withObject: ipvalue, waitUntilDone: false)
        }

    func getJSON(urlToRequest:String) -> NSData
        {
            return NSData(contentsOfURL: NSURL(string: urlToRequest)!)!
        }

    func parseJSON(inputData:NSData) -> NSDictionary{
            let dictData = (try! NSJSONSerialization.JSONObjectWithData(inputData, options: .MutableContainers)) as! NSDictionary
            return dictData
        }

    func updateIPlbl(text: String) {
            self.ipLabel.text = "Your IP is " + text
        }

非常感谢。但是XCode要求我在您提供的每个函数中稍微更改语法。能否请您解释一下为什么您的版本无法成功编译?我的代码如下:例如:func getJSON(urlToRequest:String) -> NSData { return NSData(contentsOf: NSURL(string: urlToRequest)! as URL)! } - Oleg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接