URLSession Timout Intervalを5秒に設定しようとしています。 Webページはローカルページなので、その時間内にロードする必要があります。 Webページが5秒以内に読み込まれない場合は、警告メッセージをポップアップして、ネットワークに接続するようにユーザーに指示します。私の質問は、私はすでに持っている作業コードでこれを実装できますか?私はいくつかの異なる例を使用しようとしましたが(1つはコメントアウトされています)、運はありません。任意のヘルプは高く評価されています:)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 Webサーバーは、私がssidとpskを変更しているデバイスで実行されています。したがって、ユーザーが正しいネットワーク上にいない場合、私はアラートを受け取ることを望みます。問題は、ssidは静的ではないため、特定の文字列値に接続されているかどうかを確認できません。だから私は、デフォルトのセッションタイムアウト間隔を減らし、(もし数秒後に)彼らがネットワーク上にいるかどうかをPHP Webページに到達できるかどうかを見て伝えることを探していたのです。
これはあなたが探しているものである可能性があります.. https://stackoverflow.com/questions/23428793/nsurlsession-how-to-increase-time-out-for-url-requests – HowsThatMonkey
私はあなたが正しいと信じています私はこれをうまく実装できませんでした。上記のコメントされたコードは、そのリンクが示唆しているものと同じです(私は信じています)。 –