项目中的连接本地服务器以及JSON解析
来源:互联网 发布:plc模块化编程实例 编辑:程序博客网 时间:2024/06/07 13:48
在做项目的时候用到了连接本地服务器以及JSON编码。
首先是在本地电脑上搭建服务器,但是在MAC上,apache是自带的,唯一需要安装就是数据库,apache的启动很简单,只要在terminal里输入:sudo apachectl -k start就可以,然后输入密码就OK了,同时开启数据库。
接下来就是php编写了,我查了一些资料,主要连接方式有两种,POST 和 GET,我选了POST,虽然用GET也没关系,但是因为GET会暴露参数,所以还是用了POST,在写php时我查了一些关于JSON编码的方式,网络上有两种方式,一种是直接进行编码:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
还有一种就是通过数组来编码(也是我现在在用的方法):
while($row=mysql_fetch_object(($result)))//取出结果并显示 { $u = new User(); $u->user_id=$row->user_id; $u->username=$row->username; $u->pic_url = $row->pic_url; $arr[] = $u; } echo json_encode($arr);通过上面两种方法,分别可以对数据进行JSON编码,到时候在程序操作过程中会方便很多。
做完了JSON编码,那么php端的基本就完成了,接下来就是本地的连接到服务器上去了。
程序连接本地服务器步骤主要为:
1.创建一个请求 :NSMutableURLRequest (需要提供URL)
2.创建需要的数据体(就是进行POST请求需要发送的参数)
3.建立异步连接
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 网络请求结束之后执行!}
在上面的代码中需要创建一个进程,而这个进程不是主进程(mainQueue) 因为如果是主进程的话,那么用户在联网的时候是不能做其他事情的,这样不合理。
而且代码返回来的是data形式的数据,data形式可以转换成string类型的,也可以转换成字典类型,因为要用到模型,所以我选择转换成字典类型的(也就是对JSON的解析):
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSLog(@"RESPONSE DATA: %@", dic);
转换成NSDictionary很简单,因为系统自带的API里的NSJSONSerialization速度相对于其他的JSON解析方式来说快很多,而且不必导入其他的第三方框架。这样就完成了对JSON的解析。
0 0
- 项目中的连接本地服务器以及JSON解析
- 连接本地服务器Tomcat上解析Json的一个新闻客户端界面
- 本地Python连接服务器中的Mysql数据库
- Android中的Json是什么以及解析
- PHP以及JSON中的转义问题解析
- JSON解析字符串 获取服务器中的文件名
- android解析xml和json数据(获取本地服务器数据)
- Android使用本地缓存解析远程服务器JSON数据
- JQuery的 $.getJSON解析本地或者服务器的json文件
- 解析本地json文件
- 本地解析Json
- 解析本地json文件
- Json本地解析
- Json解析本地json文件
- TortoiseSVN修改本地项目中的svn服务器ip
- 什么是json以及json解析
- IE8中的原生JSON对象如何使用以及解析?
- json字符串的类型以及在javascript中的解析方式
- UML——协作图
- Android程序运行时权限与文件系统权限的区别
- LoadRunner脚本编码规范
- lua 中ipairs 和 pairs 区别
- 动态规划---最长公共子序列
- 项目中的连接本地服务器以及JSON解析
- 【面试加分项】运行时多态与编译时多态
- Servlet 实现访问量的统计小案例
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
- ACdream 1154 Lowbit Sum(数位DP)
- SDL游戏开发系列第一话:Hello SDL
- STM32是如何进入中断函数xxx_IRQHandler的
- hadoop2.7.0版本搭建伪分布式环境
- 1011. A+B和C (15)