AFNetworking 报错3840...

前言

之前写过一篇文章,关于AFNetworking 报错415的,最近,又有3840错,整天都被一些莫名其妙的错误纠缠,吃一堑,长一智,废话不多说了,这个3840的错,网上搜了好久,试了好久,终于解决了.

一.报错具体如下

1 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x15d7bdd0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

二.错误的产生

我按照之前封装的AFNetworking发送post请求,然后报错了,错误是 AFNetworking 不支持一种类型:`content-type`=`text/plain`;
这种错误好解决,有了之前的文章,这个很快搞定,在AFNetworking中的这个子类`AFURLResponseSerialization.m`文件中,226行,添加不支持的类型即可,详情参考AFNetworking报错:(415...)

2.1 网络请求是这么写的

 1 SString *url                = @"http://muyan.tunnel.qydev.com/aliPay/getSignDate";
 2     url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 3     AFSecurityPolicy *policy     = [[AFSecurityPolicy alloc] init];
 4     [policy setAllowInvalidCertificates:YES];
 5     AFHTTPSessionManager *manger = [AFHTTPSessionManager manager];
 6     [manger setSecurityPolicy:policy];
 7     manger.requestSerializer = [AFJSONRequestSerializer serializer];
 8     manger.responseSerializer = [AFJSONResponseSerializer serializer];
 9     NSDictionary *dict = @{
10                            @"subject":@"你是大牛",
11                            @"total_fee":@0.02,
12                            @"body":@"哈哈哈哈哈"
13                            };
14     [manger POST:url parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
15         LXLog(@"请求成功");
16         LXLog(@"%@",responseObject);
17     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
18         LXLog(@"%@",error);
19     }];

好了,这个解决了,然后又出现了一个难缠的问题,3840,没事,好了,翻墙google,终于找到了问题的答案,其实就是替换掉`manger`的响应序列化设置:

1 manger.responseSerializer=[AFHTTPResponseSerializer serializer];

这个就有意思了,请求的时候是`AFJSONRequestSerializer`,然后响应的时候,变成它的父类AFHTTPResponseSerializer,问题解决,但是,这样的话,返回来的数据,就是一串数字,NSdate,直接转json或者string,都可以,这个更深一层的意义,有待探索.......

 

转载于:https://www.cnblogs.com/20150728-IOS/p/5735323.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"objc app架构.pdf" 是一份关于 Objective-C 应用程序架构的文档。Objective-C 是一种面向对象的编程语言,广泛应用于苹果公司的操作系统及其相关应用程序的开发中。 该文档可能包含了 Objective-C 应用程序的整体架构设计、组件和模块之间的关系以及通信方式等方面的内容。这些信息对于开发者来说非常重要,能够帮助他们理解如何构建出高效、可扩展、易维护的应用程序。 Objective-C 应用程序的架构设计是确定其组织结构、分层和模块划分的过程。良好的架构设计可以提高程序的可靠性、性能和可维护性。这些设计决策将影响着整个开发周期,使得应用程序的开发、测试、优化和维护更加高效。 对于 Objective-C 应用程序来说,常见的架构模式包括 Model-View-Controller (MVC)、Model-View-Presenter (MVP) 和 Model-View-ViewModel (MVVM) 等。这些模式帮助开发者将应用程序的数据逻辑、用户界面和业务逻辑分离开来,使代码更易读、理解和测试。 文档中可能还会介绍一些常用的开源库和工具,这些工具可以帮助开发者更好地进行设计和实现。像 AFNetworking、Masonry 和 ReactiveCocoa 等库,能够加速开发过程,并提供一些方便的功能、设计模式和工具方法。 在设计和实现 Objective-C 应用程序时,需要考虑诸如性能、扩展性、可读性等方面的因素。合理的架构设计可以帮助开发者更好地管理和组织应用程序,提高代码质量和团队协作效率。 总而言之,“objc app架构.pdf” 是一份关于 Objective-C 应用程序架构的文档,通过理解和应用其中的架构设计、模式和工具,开发者能够构建出更高质量、更易维护的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值