【发布时间】:2017-05-24 05:58:05
【问题描述】:
我正在尝试将 URLSession 超时间隔设置为 5 秒。该网页是本地页面,因此应在该时间内加载。如果网页在 5 秒内未加载,我希望弹出一条警报消息并告诉用户连接到网络。我的问题是,如何使用我已经拥有的工作代码来实现它?我尝试使用几个不同的例子(一个被注释掉)但没有运气。任何帮助表示赞赏:)
func loadINFO(){
let urlString = "mytestPHP.php"
let url = URL(string: urlString)
//Try To Set Timout Interval...
//let urlconfig = URLSessionConfiguration.default
//urlconfig.timeoutIntervalForRequest = 5
//urlconfig.timeoutIntervalForResource = 5
//let session = URLSession(configuration: urlconfig)
URLSession.shared.dataTask(with:url!) { (data, response, error ) in
if error != nil {
//Alert User That They Are Not Connected To The Device
self.CreateAlert(title: "Error!", message: "Please Connect To Network and Try Again")
print(error as Any)
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
if let ssid = parsedData["SSID"] as? String,
let pass = parsedData["PASS"] as? String {
DispatchQueue.main.async {
// Update UI
self.SSID_INPUT.text = (ssid)
self.PASS_INPUT.text = (pass)
}
}
}
catch let error as NSError {
print(error)
}
}
}.resume()
}
仍然没有得到答案..如果有人有更好的解决方案,我会全力以赴。
编辑:只是为了进一步澄清。 php web 服务器正在我更改 ssid 和 psk 的设备上运行。因此,如果用户不在正确的网络上,我希望他们收到我的警报。问题是,ssid 不是静态的,所以我无法检查它们是否连接到特定的字符串值。这就是为什么我想看看我是否可以降低默认会话超时间隔,并通过查看他们是否可以访问 php 网页来告诉(几秒钟后)他们是否在网络上。
【问题讨论】:
-
这可能就是你要找的东西..stackoverflow.com/questions/23428793/…
-
我相信你是对的,但是我无法成功实现这一点。上面注释的代码与该链接建议的代码相同(我相信)。
标签: php swift3 nsurlsession