【项目】Http请求在NSMutableURLRequest添加HttpBody的字典params属性
在请求头中加入字典集合的Body,首先把字典转换成json,然后json转换成NSData,然后加入到HTTPBody中,我有已下写法
// 参数paramsNSDictionary * params = @{@"Longitude":m_lng,
@"Latitude":m_lat,
@"TimeStamp":[NSNumber numberWithLong:m_num],
@"List":_ar_UserList};
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:...]]
[request setHTTPMethod:@"POST"];
request.timeoutInterval = HTTPTIMEOUT
第一种写法:
NSData * bodyData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:nil]; NSString * jsonBody = [[NSString alloc] initWithData:bodyData encoding:NSUTF8StringEncoding]; [request setHTTPBody:[jsonBody dataUsingEncoding:NSUTF8StringEncoding]];
第二种写法:
NSData * bodyData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:nil]; [request setHTTPBody:bodyData];
当然如果你根据服务器请求需要设置一些请求头,例如:
[request setValue:urlPath(@"Bearer ", access_Token) forHTTPHeaderField:@"Authorization"]; // token [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; // content-type类型
你还可以通过以下代码,打印出你request的详情:
NSLog(@"---\n%@",jsonBody); // params字典 NSLog(@"\n%@",request.HTTPBody); // NSData二进制 NSLog(@"\n%@",request.allHTTPHeaderFields); // 一个请求头字典
最后最后,如果你是用的是AFNetworking,这样写ok啦
AFHTTPRequestOperation * operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject)
{
completion(responseObject);
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error)
{
failure(error);
}];
[operation start];
【项目】Http请求在NSMutableURLRequest添加HttpBody的字典params属性的更多相关文章
- .Net Core 项目区域请求设置
.net core 和asp.net MVC区域请求有个区别,这里重点记录一下 asp.net MVC 区域请求直接是/区域名称/控制名称/方法名称,其他不需要设置任何东西,而Core 项目这样请求路 ...
- Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL
Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL >>>>>>>>>>>>> ...
- Maven项目如何将自定义文件添加到META-INF目录下
Maven项目如何将自定义文件添加到META-INF目录下 学习了:https://blog.csdn.net/yangjiegreat/article/details/78698655 <bu ...
- 项目中如何使用NuGet添加类库
在项目上右键-->Manage NuGet Packages Browse 可以去搜索想要添加到项目的类库 Installed 已经添加到项目的类库 Updates 需要更新的类库
- vue项目中使用bpmn-为节点添加颜色
内容概述 本系列 “vue项目中使用bpmn-xxxx” 分为五篇,均为自己使用过程中用到的实例,手工原创,目前属于陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意 ...
- vue项目中使用bpmn-流程图xml文件中节点属性转json结构
内容概述 本系列“vue项目中使用bpmn-xxxx”分为七篇,均为自己使用过程中用到的实例,手工原创,目前陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具 ...
- 分别使用原生js和jQuery添加/删除元素的class属性
一.原生js添加/删除元素的class属性: <!-- span元素原有class = "test" --> <span class="test&quo ...
- dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性
dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性 分类: Java2011-06-03 16:14 976人阅读 评论(0) 收藏 举报 xml扩展语言 今天在开发sitemap地 ...
- Win10下IIS配置图解、MVC项目发布图解、IIS添加网站图解
Win10下IIS配置 .找到控制面板:[开始]菜单鼠标右击,打开[控制面板] .打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] . 开 ...
随机推荐
- Bootstrap系列 -- 10. 网格布局
一. 实现原理 网格布局是通过容器的大小,平均分为12份(可以修改),再调整内外边距,和表格布局有点类似但是也存在区别. 实现步骤如下: (1) 数据行.row 必须包含在容器.container 中 ...
- JavaScript面试题收集(一)
简述javascript中的“=.==.===”的区别? 答:=赋值 ==比较是否一般相等 "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 " ...
- 最短判断IE的办法
if(!!-[1,]){ return }; 无意中看到这样一行代码,经查是用来判断IE的代码,非常精简,原理如下: [1,],这是一个数组,IE和标准浏览器对这样一个数组的解析是不一样的 alert ...
- shell正则表达式(zhuan)
匹配中文字符的正则表达式:[u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个 ...
- fstream 中判断是否成功打开文件
from: http://blog.csdn.NET/zhtsuc/article/details/2938614 关于C++ fstream的一个容易使用出错的地方 关于c++ 中 文件流的两个类, ...
- js浏览器窗口
一.clientwidth和clientheight 注:返回了元素大小,但没有单位,默认单位是 px,如果你强行设置了单位,比如 100em之类,它还是会返回 px的大小. (CSS获取的话,是照着 ...
- Android快速开发框架LoonAndroid (转)
1.源码简介: 主要有以下模块: (1) 自动注入框架(只需要继承框架内的application既可) (2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性) (3) 网络请求模块(继承 ...
- 使用kuernetes提供高可用的kibana服务
在kubernetes集群中部署kibana步骤如下: 1:kibana安装文件(目前最新版本4.5.1): 2:编写Dockerfile及执行点脚本文件run.sh,制作Kibana镜像: 3:推送 ...
- Android Loader使用详解
1.CursorLoader使用Demo public class MainActivity extends Activity implements LoaderManager.LoaderCall ...
- 【POJ 1182】食物链(并查集)
三种动物,A吃B,B吃C,C吃A.那么用并查集时,还要多一个x和根的关系,吃或者被吃或者同类.合并两个需要更新和祖先的关系.这个关系可以自己画一画. #include<cstdio> #d ...