菜鸟教程小白 发表于 2022-12-11 20:18:40

ios - RestKit 处理不同的 HTTP 状态码


                                            <p><p>我刚刚开始为我正在构建的 iOS 应用试用 RestKit。我通常使用 ASIHttpRequest,但我想测试 RestKit 主要是因为它在 JSON 和 CoreData 之间的对象映射。 RestKit 有一些很棒的东西,但我遇到了一个问题,它真的让人觉得它有缺陷,除非我做错了什么或错过了什么。我希望这里有人可以指导我。</p>

<p>我正在使用 RKObjectLoader 对 REST API 进行异步和同步调用。我的服务旨在发送回正确的 HTTP 状态代码以及某种描述,401 是 API 何时需要经过身份验证的用户的示例。 </p>

<p>我的问题是,如果我收到 401 错误,RestKit 将停止正常运行。 RKResponse 对象的状态码为 0,即使其中包含有效负载。我很确定这归结为 NSURLConnection 对 HTTP 状态的糟糕处理,但我希望 RestKit 能以某种方式解决这个问题。特别是因为 RKResponse 类有相当多的包装函数来确定响应的状态码(isOK、isCreated、isForbidden、isUnauthorized 等)。</p>

<p>相比之下,ASIHttpRequest 不使用 NSURLConnection,而是使用较低级别的 CFNetwork 代码。 ASIHttpRequest 让我可以准确地查看通过 HTTP 返回的内容,而不会左右发送错误。</p>

<p>问题是,我是不是做错了什么,或者这是 RestKit 的预期行为?有没有人能够成功调用 ?尽管对我来说不确定,但在这方面以异步和同步模式运行之间有什么区别。我确实在某处读到 NSURLConnection 在同步模式下运行会有所不同,即使底层代码只是调用异步操作。这是否与我使用 RKObjectLoader 而不仅仅是 RKRequest 有更多关系?可能负载无法映射到模型这一事实引起了愤怒,但似乎代码在 RKRequest.sendSynchronously 中更早地中断了,在实际发生映射之前。</p>

<p>底线是我的代码需要能够自由读取 HTTP 状态代码。任何指导将不胜感激。</p>

<p>海德尔</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>RestKit 0.20.x 的常用方法是继承 RKObjectRequestOperation。
我写了一篇关于这个问题的博客文章,可以在这里找到:
<a href="http://blog.higgsboson.tk/2013/09/03/global-request-management-with-restkit/" rel="noreferrer noopener nofollow">http://blog.higgsboson.tk/2013/09/03/global-request-management-with-restkit/</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - RestKit 处理不同的 HTTP 状态码,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7628728/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7628728/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - RestKit 处理不同的 HTTP 状态码