惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
G
Google Developers Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
J
Java Code Geeks
U
Unit 42
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Docker
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
V
V2EX
T
Tailwind CSS Blog

博客园 - xinghebuluo

在云主机上部署OpenClaw并集成微信插件:从零到上手完整指南 mongodb 数据块迁移的源码分析 mongodb 数据块的迁移流程介绍 Guava Cache源码浅析 mongodb在双活(主备)机房的部署方案和切换方案设计 mongodb oplog日志详解和格式分析 Redis之ziplist源码分析 Redis之quicklist源码分析 mongodb中出现_id字段重复记录的排查笔记 Redis LRU源码分析 JAVA中int转string及String.valueOf()的使用 String,StringBuilder和StringBuffer的特点和使用场景 ReentrantLock的原理解析 mongodb的TTL索引介绍(超时索引) JBoss AS7(Application Server 7)的Standalone模式和Domain模式 mongodb 配置均衡器的运行窗口 mongodb添加延时节点 使用cocoa捕获dock栏中的“退出”事件,解决qt开发的应用程序退出异常的问题 【Grails 代理Proxy设置】部署Grails遇到Error Resolve error obtaining dependencies:错误,及解决方法
AFNetworking 遇到错误 Code=-1016 "Request failed: un...
xinghebuluo · 2016-02-22 · via 博客园 - xinghebuluo

在开发过程使用了AFNetworking库,版本2.x,先运行第一个官方例子(替换GET 后面的url即可):

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
提示Error,但其实返回的是200 OK。
Error: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain"
UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x100438a90>
{ URL: http://testadmin.test.com/webservice/test } { status code: 200, headers {
    Connection = "Keep-Alive";
    "Content-Encoding" = gzip;
    "Content-Length" = 61;
    "Content-Type" = "text/plain";
    Date = "Mon, 22 Feb 2016 09:19:32 GMT";
    "Keep-Alive" = "timeout=10, max=10000";
    Server = "SNMW1.0";
    Vary = "Accept-Encoding";
} }, NSErrorFailingURLKey=http://testadmin.test.com/webservice/test,

经过查资料,是默认的AFNetworking库,不支持解析 text/plain 类型,需要简单修改源代码就可以。
打开AFURLResponseSerialization.m,找到类 AFJSONResponseSerializer,修改它的init函数:
原内容:
- (instancetype)init {
    self = [super init];
    if (!self) {
        return nil;
    }

    self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
    return self;
}

修改为:
- (instancetype)init {
    self = [super init];
    if (!self) {
        return nil;
    }

    self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html", @"text/json", @"text/javascript",@"text/plain", nil];
    return self;
}

其实就是增加了text/plain,就可以了。