菜鸟教程小白 发表于 2022-12-11 18:38:16

ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时?


                                            <p><p>我将 <code>Swift 3.0</code> 与 <code>Alamofire 4</code> 一起使用。我正在使用单例网络类向服务器发出 <code>API</code> 请求。当没有互联网时,Alamofire 需要大约 30 秒来完成关闭并运行故障处理程序。这是我的代码:</p>

<pre><code>func performRequest(_ url:String,completionHandler:@escaping (_ Success:Bool,AnyObject?) -&gt; Void) {

    Alamofire.request(url).validate().responseJSON { response in

      if response.result.isSuccess { //Request was successful
            self.errorCount = 0
            completionHandler(true,response.result.value as AnyObject?)
      } else {
            print(&#34;failure occured&#34;)
            self.setNoInternetDialogAppear()
      }
    }
}
</code></pre>

<p>我也尝试使用此代码设置超时,但没有效果:</p>

<pre><code>`Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 2000`
</code></pre>

<p>我最近从 Swift 2.2 和 Alamofire 3 迁移了我的代码,并且从那以后才开始这样做。 TIA</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>var alamoFireManager = Alamofire.SessionManager.default
self.alamoFireManager.session.configuration.timeoutIntervalForRequest = 2000
....
self.alamoFireManager.request(...)
</code></pre>

<p>使用变量有效。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41752209/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41752209/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时?