即使没有互联网也能获得数据响应

时间:2019-09-30 15:54:22

标签: ios swift connection response urlsession

没有互联网连接时,我正在测试我的应用程序行为。我只是在用户离线时得到错误。

我执行此代码,并在禁用Internet连接时在控制台中输出“可选数据(53161字节)”。

func getCountries(request: @escaping (Data?, Error?) -> Void) {

    guard let url = url else { print("url is not valid")
        return
    }

    session.dataTask(with: url) { (data, response, error) in

        guard error == nil else {
            request(nil, error)
            return
        }

        print("data \(data)")
        request(data, nil)

    }.resume()
}

那我为什么在没有连接的情况下得到回应?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:

func getCountries(request: @escaping (Result<Data,Error>) -> Void) {

    guard let url = URL(string: "yourURL") else {
        print("url is not valid")
        return
    }

    let task =  URLSession.shared.dataTask(with: url) { (data, response, error) in

        guard error == nil else {
            request(.failure(error!))
            return
        }
        request(.success(data!))

    }
    task.resume()
}

要调用该函数,请执行以下操作:

getCountries() { result in
    switch result {
    case .failure(let error):
        print(error.localizedDescription)
    case .success(let success):
        print(success)
    }
}