YTKBaseRequest的requestSerializerType属性默认值是YTKRequestSerializerTypeHTTP,对应的Content-Type类型是application/x-www-form-urlencoded,form表单数据需要被编码为key/value格式发送到后台,一般的使用方式如下(以编辑车牌接口为例):

@implementation SCCarParkUpdateCarRelationAPI- (NSString *)requestUrl
{return [NSString stringWithFormat:@"carParkApplication/%@/updateCarRelation", self.orderId];
}- (YTKRequestMethod)requestMethod
{return YTKRequestMethodPOST;
}- (id)requestArgument
{return self.params;
}- (void)setCarLicenceList:(NSArray *)carLicenceList
{// 服务列表信息NSData *carLicenceListData = [NSJSONSerialization dataWithJSONObject:carLicenceList options:NSJSONWritingPrettyPrinted error:nil];NSString *carLicenceListStr = [[NSString alloc] initWithData:carLicenceListData encoding:NSUTF8StringEncoding];[self.params setValue:carLicenceListStr forKey:@"carLicenceList"];
}@end
复制代码

使用json方式发送数据到后台: 重写requestSerializerType方法,返回YTKRequestSerializerTypeJSON;然后requestArgument方法直接返回对象即可,如下:

@implementation SCCarParkUpdateCarRelationAPI- (NSString *)requestUrl
{return [NSString stringWithFormat:@"carParkApplication/%@/updateCarRelation", self.orderId];
}- (YTKRequestMethod)requestMethod
{return YTKRequestMethodPOST;
}- (id)requestArgument
{return self.carLicenceList;
}- (YTKRequestSerializerType)requestSerializerType
{return YTKRequestSerializerTypeJSON;
}
复制代码

需要注意的是:

requestArgument方法必须返回能转化成json的对象,要求如下:

顶层对象必须是NSArray或者NSDictionary

所有的对象必须是NSString、NSNumber、NSArray、NSDictionary、NSNull的实例

所有NSDictionary的key必须是NSString类型

数字对象不能是非数值或无穷

还有一点,如果使用MJExtension中的mj_jsonObject把对象转换成json对象时,必须保证该对象不遵守任何协议,不然转换是不成功的,issue请见:github.com/CoderMJLee/…

其它注意事项:

其它注意事项:

1.application/json可使用的http方法有post/put/delete。

get操作没有body部分,只能以key/value形式传递参数拼接在url中

post/put/delete有body部分,与服务器传递信息,都放在body中

2.是否使用application/json方式进行传值,需要与后台约定好

3.可对单个接口使用application/json方式进行传值,不影响到其它的接口

4.当application/json方式进行传值时,后台框架上使用了@RequestBody注解,读取请求body里面的值直接映射成参数,框架完成了这个事。

转载于:https://juejin.im/post/5c6baff5f265da2d89632474

YTKNetwork使用application json方式传递参数相关推荐

  1. 如何使用router-link对象方式传递参数?

    如何使用router-link对象方式传递参数? 疑问:(判断和传参) 点击导航栏目,js如何判断自己点击的是哪个具体栏目? 它们是如何传参的? 如何使用params,携带查询参数? 效果图解说: A ...

  2. Angular中实现路由跳转并通过get方式传递参数

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  3. get和post方式传递参数

    1.Get方式 1)当用户在浏览器地址栏中直接输入某个url地址或者单击网页上一个超链接时,浏览器使用get方式发送请求. 2)当网页行的form标单的method属性设定为"GET&quo ...

  4. 黄聪:解决Jquery在GET方式传递参数时gb2312中文编码乱码

    数据传递编码仅支持UTF-8,这个虽然是全球统一编码,但是也要考虑一下中国人名本地网站的编码问题吧 而且 在jquery的发送端,无论你设置了程序级编码还是页面级编码,jquery都会使用utf-8的 ...

  5. 以application/json 方式提交 然后用在php中读取原始数据流的方式获取 在json_encode...

    html 如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> ...

  6. script src 方式传递参数

    传递动态参数 <script src="javascript/Adv_Search.js?t=' + new Date().getTime() + '"></sc ...

  7. axios post封装对象到后端_axios 使用post方式传递参数,后端接受不到

    最近做vue项目,做图片上传的功能,使用get给后台发送数据,后台能收到,使用post给后台发送图片信息的时候, vue axios post请求发送图片base64编码给后台报错HTTP 错误 41 ...

  8. 2021 Axios 各种请求方式传递参数格式整理

    目录 axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.post(url[, data[ ...

  9. python函数可以按照参数名称方式传递参数_python函数传入参数(默认参数、可变长度参数、关键字参数)...

    1.python中默认缺省参数----定义默认参数要牢记一点:默认参数必须指向不变对象! 1 def foo(a,b=1):2 printa,b3 4 foo(2) #2 1 5 foo(3,100) ...

最新文章

  1. 【iOS】快速集成轮播控件
  2. 比特币现金一周年:BCH地位几何?
  3. 行代码实现数据集可视化、分析与比较
  4. linux 非交互ssh sshpass简介
  5. C++中数字和字符串类型的转换
  6. Ubuntu之12.04常用快捷键——记住这些你就是高手啦!
  7. 试卷代号6098计算机应用基础,2231电大《Visual Basic程序设计》试题和答案200507
  8. 二元一次方程有唯一解的条件_人教版初中数学七年级下册用适当方法解二元一次方程组公开课优质课课件教案视频...
  9. (一二六)第十一章编程练习
  10. 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...
  11. 使用LoRa技术进行智慧城市转型
  12. 软件工程期末考试复习(二)
  13. mysql python用法_python-mysql基本用法
  14. 惊!使用nw.js将vue项目打包为可在xp系统运行的桌面程序
  15. 四川大学计算机学院男女生比例,2019年四川各大高校男女比例排行,电子科技大学4比1...
  16. 资讯_计算机屏幕_镜面屏;
  17. CloseableHttpClient设置Timeout 设置超时时间
  18. 使用css做一个右向的三角箭头
  19. 通讯录软件测试报告,手机APP测试报告记录.doc
  20. Spring MVC(4):数据校验

热门文章

  1. echarts 自适应高度_web 报表工具如何自适应
  2. 研究人员使用脑机接口从神经信号中重建单词
  3. 搜集的一些项目源码,改改就能用
  4. php根据循环条件切换图片,thinkphp 循环显示图片问题!!!~~~~
  5. 袖口里的“超能力”:Facebook腕带式AR传感器,可隔空打字、操控界面,LeCun点赞...
  6. 微软摊开 AI 高分作业,在线求抄
  7. 千亿美元市值的拼多多,真被高估了吗?
  8. 三次元风景照秒变宫崎骏动画,还能把石原里美吉卜力化,AnimeGAN已开源
  9. 微软日本每周只上四天班,销售额提升39.9%!网友:老板快来看啊
  10. 首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品 | ICCV 2019