菜鸟教程小白 发表于 2022-12-12 21:46:29

ios - AFNetworking 2.0,仅在离线时使用缓存


                                            <p><p>当用户使用我的应用但他们失去连接或使用飞行模式时,我遇到了问题。</p>

<p>我的应用服务器端没有设置任何缓存策略,暂时无法更改。我从 AFNetworking 1.x 迁移到 2.0,现在我在发出请求时使用 <code>AFHTTPRequestOperationManager</code>。问题是因为我在服务器端没有缓存策略,所以每个请求都向服务器发出(现在这很好)但是如果用户无法连接到我的服务器,它不会加载缓存的请求.</p>

<p>所以,我正在尝试以下操作,像这样直接使用 <code>AFHTTPRequestOperation</code>:</p>

<pre><code>NSURL *URL = ;
NSMutableURLRequest *request = [ mutableCopy];
if (![ isReachable]) {
    ;
}
AFHTTPRequestOperation *op = [ initWithRequest:request];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

}];
[ addOperation:op];
</code></pre>

<p>这样,如果 <code>AFNetworkReachabilityManager</code> 告诉我没有连接,我为请求配置了缓存策略,并且它从缓存中正确加载。</p>

<p>问题是,这是解决这种情况的正确方法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你只需要继承 <code>AFHTTPSessionManager</code> 并检查客户端是否离线。然后您可以更改缓存策略或强制应用使用缓存数据。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - AFNetworking 2.0,仅在离线时使用缓存,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23173839/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23173839/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - AFNetworking 2.0,仅在离线时使用缓存