URLSession Timout Interval을 설정하여 5 초가되도록 설정하려고합니다. 웹 페이지는 로컬 페이지이므로 해당 시간에로드해야합니다. 5 초 안에 웹 페이지가로드되지 않으면 팝업 메시지가 나타나고 사용자에게 네트워크에 연결하라는 메시지가 표시됩니다. 내 질문은, 내가 이미 가지고있는 작업 코드로 이것을 어떻게 구현할 수 있는가하는 것입니다. 몇 가지 다른 예제를 사용하려고 시도했지만 (하나는 주석으로 처리되었습니다) 운은 없습니다. 어떤 도움에 감사드립니다 :) 사람이 내가 모든 귀 해요 더 나은 솔루션이있는 경우 URLSession 시간 초과 간격 설정
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 웹 서버가 ssid와 psk를 변경하고있는 장치에서 실행 중입니다. 따라서 사용자가 올바른 네트워크 상에 있지 않으면 내 경보를 받기를 원합니다. 문제는 ssid가 정적이 아니므로 특정 문자열 값에 연결되어 있는지 확인할 수 없습니다. 그래서 내가 기본 세션 시간 초과 간격을 낮추고 (몇 초 후) 그들이 PHP 웹 페이지에 도달 할 수 있는지 확인하여 네트워크에 있는지 알려주고 싶습니다.
이것은 당신이 올바른 생각이 .. https://stackoverflow.com/questions/23428793/nsurlsession-how-to-increase-time-out-for-url-requests – HowsThatMonkey
찾고있는 수 그러나 나는 이것을 성공적으로 구현할 수 없었다. 위의 주석 된 코드는 링크가 제안한대로 동일합니다 (저는 믿습니다). –