首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AFNetworking接口调用状态码

AFNetworking接口调用状态码
EN

Stack Overflow用户
提问于 2014-05-19 21:49:10
回答 2查看 629关注 0票数 0

有没有可能AFNetworking也考虑了API状态码?

Call返回200 HTTP代码,表示正常,但状态代码为406,表示失败。

即使AFNetworking调用失败,这也会导致调用API成功块。对此有解决方案吗?

代码:

代码语言:javascript
运行
复制
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSString *APICallURL = [NSString stringWithFormat:@"%@/%@", SERVER_URL, @"something.php"];

[manager GET:APICallURL parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    if (success) {
        success();
    }
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    if (failure) {
        failure(error);
    }
}];
EN

回答 2

Stack Overflow用户

发布于 2014-05-19 22:01:40

X-API-Status-Code是一个完全非标准的报头(实际上,根据定义,任何以X-...开头的报头)。

该标头是您的特定服务器选择用来报告API状态代码的专有方式。它可以选择任何其他专有头来这样做,也许叫它X-API-ReturnCode或诸如此类的东西。

因此,我怀疑AFNetworking是否会在本地支持这一点。

但是,你可以使用create your own AFURLResponseSerialization subclass and implement validateResponse,这样你的代码就可以检查这个专有的头文件,并相应地操作。

票数 2
EN

Stack Overflow用户

发布于 2014-05-19 22:07:22

来自服务器的任何故障状态码都不会到达故障块。关于AFNetworking,网络调用成功,并显示来自服务器的错误代码。

只有当我们不能成功完成网络呼叫时,它才会到达故障块,例如1)超时错误2)服务器关闭并且无法到达3)网络丢失等

解决方案是检查成功块中网络调用的状态码,识别来自服务器的错误响应

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23739555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档