ios - Web 请求确实无法正常工作

标签 ios json swift web swift3

我想创建一个调用服务器并获取 JSON 信息的小应用程序。服务器返回的是这样的:

{"temperature":23.60,"humidity":18.40}

我的代码是这样的:

    let requestURL: NSURL = NSURL(string: "http://esp_0b48a1:1337/")!
    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: requestURL as URL)
    let session = URLSession.shared
    let task = session.dataTask(with: urlRequest as URLRequest) {
        (data, response, error) -> Void in

        let httpResponse = response as! HTTPURLResponse
        let statusCode = httpResponse.statusCode

        if (statusCode == 200) {
            print("Everyone is fine, file downloaded successfully.")
            do{
                let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:AnyObject]

                if let temp = json["temperature"] as? String {
                    self.degrees.text = temp + "°C";
                    print(temp);
                }
                if let hum = json["humidity"] as? String {
                    self.hum.text = hum + "%";
                    print(hum);
                }
            }catch{
                print("error");
                self.degrees.text = "no Temperature";
                self.fill.text = "with";
                self.degrees.text = "some errors like " + String(statusCode);
            }
        }
    }

    task.resume()

我正在我的 MainViewController 的 viewDidLoad 函数中执行它。 我得到输出“Everyone ist fine, file dl successfully”但没有更多输出。不是 do block 中的那个,也不是 catch 中的那个输出,它不会更改 UILabel。 但是在我的网络服务器上,我可以看到它收到了一个请求!

有什么想法吗? 我通过 http 连接并将 App Transport Security Settings 中的 Allow Arbitrary Loads 设置为 yes (info.plist)

扣篮 toast

最佳答案

转换为漂浮物应该会让你前进。我建议添加一个 else 来处理类型转换失败。

 if let temp = json["temperature"] as? Float {
                self.degrees.text = temp + "\(temp)°C";
                print(temp);
 }else{
 //handle this outcome
 }

 if let hum = json["humidity"] as? Float {
           self.hum.text = hum + "\(hum)°C";
           print(hum);
 }
 else{
 //handle this outcome
 }

关于ios - Web 请求确实无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597366/

相关文章:

ios - 如何在 Swift 中生成和处理错误

JSON 路径提取器 - 缺少 DummySampler

sql - 使用 JSON_MERGPATCH 后更新 json 列

ios - SIGBART 错误和回溯未显示任何有用的内容

ios - 将 CGPoint 数组传回 swift

ios - 如何在 swift 3 中从相机预览 View 裁剪图像?

ios - 在 UITableViewCell Swift 4+ 中向 UIImageView 添加双击手势识别器

ios - 将 Storyboard 中的 UISwipeGuesture 连接到 TableView Controller

ios - 动画还在,当主线程做其他事情时

javascript - 创建 Facebook 网站受众返回 JSON 错误