【项目】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功能] . 开 ...
随机推荐
- 用node.js实现简单的web服务器
node.js实现web服务器还是比较简单的,我了解node.js是从<node入门>开始的,如果你不了解node.js也可以看看! 我根据那书一步一步的练习完了,也的确大概了解了node ...
- ArcEngine将线符号化为立方体状
对于二三维同步中的三维视图肯定是需要通过二维元素来符号化成三维元素的,之前项目测试临时采用这个自代的圆管状: esriSimple3DLineStyle AxisStyle = esriSimple3 ...
- git的理解
1.对git的分支怎么理解. git的本地,git的跟踪,如果我们的本地的命令行进入某个分支的话,我们的本地对应的文件夹就显示某个,然后我们的ide打开的就是那个分支 2.git的在线视频教学 htt ...
- Ryu
What's Ryu? Ryu is a component-based software defined networking framework. Ryu provides software co ...
- MATLAB axis和axes的区别
axis中文为“轴”之意,在matlab中用于控制坐标轴的范围和样式(颜色等). axis([XMIN XMAX YMIN YMAX]) 设置当前所绘图像的x轴和y轴的范围.axis([XMIN XM ...
- WinForm 问题集锦
[1]重用项目窗体解决方案: 1. 把FmMain.cs 和 FmMain.Designer.cs 和 FmMain .resx 三个文件复制到程序目录下: 2. 在vs里面添加现有项, 选择FmMa ...
- keypress,keydown,keyup,charCode,keyCode兼容性问题
keypress对应的是字符编码,如“ABC”,“123”之类,有大小写之分(有兼容性问题) keydown,keyup对应的是键盘的键码,无大小写之分,每个键盘都有一个键码(无兼容性问题) 使用ke ...
- 东大OJ-1588: Routing Table
题目描述 In the computer network, a Router is a device which finds an optimal way to transmit the datagr ...
- make the innerText in the html element can not be selected
approach style="-moz-user-select:none;" onselectstart="javascript:return false;" ...
- PHP 文件创建/写入
<?php /* PHP 文件创建/写入 fopen() 函数也用于创建文件.也许有点混乱, 但是在 PHP 中,创建文件所用的函数与打开文件的相同. 如果您用 fopen() 打开并不存在的文 ...