ios 传递JSON串过去 前面多了个等号
先说下我的问题
后台让我这边把请求的参数弄成一个实体转化成 json 串放body里传给他,当然header也有设置,提前设置好了,
但是后来了解 所谓的把实体转成json串的本质就是先把实体用runtime 转化为字典 或者数组 然后用
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:model options:NSJSONWritingPrettyPrinted error:nil];
//
NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
上面两行代码解析转换,得到的确实好的json串。
但是问题出现了,每次传递之前输出log json串是没问题的,但是到服务器那边,json串前多了个等号,
=%3C7b0a2020%2022706173%2073776f72%206422203a%2020223132%2033343536%20222c0a20%2020227573%2065724e61%206d652220%203a202231%2033323431%2035383235%203233220a%207d%3E
后台解析不了。
后来查找AFN底层 找到原因了
AFURLRequestSerialization.m 508行
query = AFQueryStringFromParameters(parameters); 能清晰的输出 把我们的json 做了改变(为什么会变)。
解决办法
AFHTTPSessionManager 267行方法 里加入
[request setHTTPBody:parameters]; (不知道为什么会这样),
但是到现在为止 还是没通数据 又把前面的json串改成json流 也就是删除 NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
但是我用的是Ytknetwork 所以 我又改了
YTKNetworkAgent.m 167 行sessionTaskForRequest 进入响应的post (根据需要可以是get),也就是457行
dataTaskWithHTTPMethod方法里加入
[request setHTTPBody:parameters];这行代码
终于通了
ios 传递JSON串过去 前面多了个等号的更多相关文章
- iOS解决json串中的NSNull类型
iOS解决json串中的NSNull类型 后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符 ...
- iOS 解析json串
NSString *json = @"[{\"name\":\"a1\",\"items\":[{\"x1\" ...
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- iOS开发解决json串中的NSNull类型
后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串.下面是转化方法: 1 自定义的几个方法:放 ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- WebApi传递JSON参数
开发过程中经常进行JSON的传递,在WebApi中传递JSON字串时,会发现服务器端接收到不参数值,看下面代码 服务端: public void Post([FromBody]string value ...
- 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
一般前端与后端的互交都是通过json字符串来互交的,我的理解就是与网页接口的来回数据传递采用的数据结构就是json.一般是这样. 比如后端的代码是这样的: @RequestMapping(value ...
随机推荐
- 下载网站js css img 资源
- 关于noip2017的感想
关于noip2017的感想 晚自习没有事做,也不知道该干什么. 第一次参加noip提高组. 前2年参加普及还算不错,没有犯任何错误. 去年就做了几套历年真题,感觉500+很好拿呀. 但去年的时候看20 ...
- labview web发布局域网内访问
按照labview的web访问具体步骤操作完之后,把电脑的网络要设置在局域网环境下,网络要处于专用网络中,就可以进行局域网内访问
- Vue.js安装使用教程
一.说明 上大学前,请的都是前端JavaScript.后端ASP/PHP/JSP.前后端代码混杂:上大学时,请的都是前端Jquery.后端SSH.前后端代码分离通过模板关联:大学出来后,请的都是前端三 ...
- MySQL查询性能优化(精)
MySQL查询性能优化 MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下 ...
- yml多环境配置
配置独立各自的环境 注:如果需要修改环境测试,只需要修改spring: profiles: active: “环境名” spring: profiles: active: prd --- #开发环境配 ...
- 三星I939D手机刷机记录
三星I939D刷机经过 2017.10.21 ===================== 之前手机的Recovery已经升级过了. 由于一直没有找到原版的升级包,而网上的升级包几乎没有一个干净的,垃圾 ...
- 'Tensorboard.util' has no attribute 'Retrier' - 'Tensorboard.util'没有属性'Retrier'
Here is a popular issue when you want to use tensorbard with your upgraded tensorflow and tensorboar ...
- centos 7添加硬盘及LVM扩容
一堆概念 分区工具 fdisk:支持MBR,对GPT支持的不好 parted:支持GPT partprobe(centos 5/6).partx(centos 7)通知内核强制重读磁盘分区表 分区表 ...
- 虚拟机使用ceph-deploy安装ceph
参考: ceph官网介绍 使用ceph-deploy安装Ceph 12.x 安装虚拟机 首先安装虚拟机环境,虚拟机安装这里不做介绍,本实验使用的镜像为CentOS-7-x86_64-Everythin ...