iOS开发Post请求错误:Error Domain=NSCocoaErrorDomain Code=3840 JSON text did not start with array or ...
由于最近忙着开发项目,好几天没来写博客了。我把最近遇到的一个小bug来和大家分享一下。
最近iOS开发中,客户端需要使用http POST去进行请求服务器。需要发送的是XML格式的,当然接收的也是XML。我们准备使用的是AFNetworking来实现。关于AFnetworking的使用以及Cocoapods包管理,请参考我的其他几篇博客:《iOS项目开发实战——使用AFNetworking进行Http Get请求》,《查看进行AFNetworking请求时的头部信息》,《iOS包管理工具Cocoapods的安装与使用》。我进行请求的代码实现如下:
-(void)query05{AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];NSString *str = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>""<root>""<command_type>****</command_type>""<id>***</id>""<action>***</action>""<value>***</value>""</root>";NSDictionary *parameters = @{@"test":str};[manager POST:@"http://***.php"parameters:parameterssuccess:^(AFHTTPRequestOperation *operation,id responseObject){NSLog(@"Success: %@", responseObject);}failure:^(AFHTTPRequestOperation *operation,NSError *error){NSLog(@"Error: %@", error);}];
}
但是当运行程序后,出现如何错误:
Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
如图:
。
这个bug的确很诡异,我根本没有做任何关于JSON的操作,却给我报了一个JSON的错。最后查了很多资料,解决方案如下:主要是增加了几行代码:
- (void)query05{//增加这几行代码;AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];[securityPolicy setAllowInvalidCertificates:YES];AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
//这里进行设置;[manager setSecurityPolicy:securityPolicy];manager.responseSerializer = [AFHTTPResponseSerializer serializer];NSString *str = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>""<root>""<command_type>***</command_type>""<id>***</id>""<action>***</action>""<value>***</value>""</root>";NSDictionary *parameters = @{@"test" : str};[manager POST:@"http://***.php"parameters:parameterssuccess:^(AFHTTPRequestOperation *operation,id responseObject){NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];NSLog(@"成功: %@", string);}failure:^(AFHTTPRequestOperation *operation,NSError *error){NSLog(@"失败: %@", error);}];
}
通过以上的修改,就能成功的获得服务器的数据了。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
iOS开发Post请求错误:Error Domain=NSCocoaErrorDomain Code=3840 JSON text did not start with array or ...相关推荐
- Error Domain=NSCocoaErrorDomain Code=3840 JSON text did not start with array or object and option
数据请求失败 报错 Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or ob ...
- iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 quot;The operation couldn’t be comple
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 38 ...
- Error Domain=NSCocoaErrorDomain Code=3840 The operation couldn’t be completed. (Cocoa error 3840.)
AF解析json出错: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Co ...
- iOS Error Domain=NSCocoaErrorDomain Code=4099
Xcode 控制台报错: [Client] Sending selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 " ...
- DeviceToken 获取失败,原因:Error Domain=NSCocoaErrorDomain Code=3000 未找到应用程序的“aps-environment”的授权字符串......
apns -> 注册推送功能时发生错误, 错误信息: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的"aps-envi ...
- 七牛报错error: Error Domain=NSCocoaErrorDomain Code=256 “未能打开该文件。
搞了一个项目,发现iOS11.2 可以上传视频成功,但是iOS13到14.0都不成功.debug发现这个问题. QiNiuLogic.m:93 QiNiuLogic <QNResponseInf ...
- 报错: Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099
报错: Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 问题原因: ...
- xcode 报Remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 The connec...
Xcode 运行真机正常 运行模拟器报"Remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=40 ...
- 「IOS 网络踩坑」错误 Error Domain=NSURLErrorDomain Code=-1004
一.原因 两种可能 1.1 网络原因 请检查你的网络是否连接 建议使用浏览器搜索网页,因为 App 可能自带缓存 1.2 使用 LocalHost 本地测试时使用 LocalHost 上线时可能报错 ...
最新文章
- mysqldump备份数据库
- python分配buffer_Node.js中的buffer如何和python中的buffer相对应
- NYOJ 837 Wythoff Game
- android查看wifi是否双频,Android判断wifi是5G还是2.4G
- leetcode214. 最短回文串
- 嵌入式编程要不要学数据结构_少儿编程要不要学?其实国家早就给出了答案……...
- 电脑打开微信小程序_终于可以在电脑上玩转微信小程序啦
- php基础:查询程序运行时间并且把科学计数法转换成正常数字
- 使用SharePoint 2010 母版页
- centos7安装详细图解_开封温包规格,电热执行器安装详细图解
- 2020.02.04 14:30
- 新浪的动态策略灰度发布系统:ABTestingGateway
- kotlin面向对象实战~
- 基于cat12和SPM12进行VBMSBM数据分析笔记1——数据预处理
- 同步发电机转子的转动惯量与运动方程(一) 基本物理概念
- vi编辑器的使用 快捷键
- 嵌入式linux时间同步,ntpdate的交叉编译
- vFlat Scan – 可能是最快捷的纸质书扫描应用,一次 2页,居然还能移除手指头[iOS/Android]
- stm32-mini-LCD液晶显示实验
- 计算机会计和传统手工会计的区别,简要比较手工会计和计算机数据处理方式的区别...
热门文章
- 布局——线性布局、相对布局
- U盘制作-BGA焊接练习
- Python 文件打开读取写入方法
- Ubuntu开发环境_TLP电源管理模块、禁用笔记本触摸板
- 命令行连接MySQL报错:mysql: [Warning] Using a password on the command line interface can be insecure
- i春秋-2016-2017年信息安全竞赛 Web writeup 补题 By Assassin
- iftop输出详解和命令详解
- Linux下C语言串口应用编程
- 多个域名和IP指向带www主域名
- GitHub忘记用户名和密码如何找回