您的位置:首页 > 移动开发 > IOS开发

IOS开发---菜鸟学习之路--(二)-数据获取

2013-11-19 19:24 567 查看
第二篇了.

本篇要讲的是数据获取.

为什么将数据获取放在第二篇就讲呢?

因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始.

可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么从网络上获取数据(毕竟现在开发的软件一般都是需要联网来运行的)所以如果能在一开始就知道数据连接到底怎么实现,到底麻烦不麻烦.那么最起码心里有个底,

换言之,我也可以安心的把软件做的好点到时候将数据的那部分模块换成从网络上获取就好了.

好了废话不多说了直接进入正题.(PS:我这边只是把我实现数据获取的方式讲一下,因为我自己也不是很深入的研究,所以数据获取的模块被我弄的非常简单....还是那句话希望不要误人子弟.)

正文:

数据获取的话我这边使用的数据格式是JSON格式的数据(不知道JSON的请自行百度)

在一开始实现的时候我是先写个c#的webservice服务的,然后发现通过我这个方法调用过来之后返回的数据是

XML格式的..这样的话,为了获得里面的数据我还需要再解析XML一遍.非常的麻烦(苦逼的程序员就是怕麻烦的人物啊...)

然后我这边就分析了下数据获取的实现原理...然后就将服务提供换成了C#网页中的一般处理程序也就是.ashx文件

至于.ashx文件怎么写请在本文备注部分查看
http://XXXXX.XXXX.XXX/WebServicesForIOS/IOSWebservices.ashx?参数....

这个是我们.ashx的地址

{"Result":"True","Data":{"ID":196,"用户名":"dl","密码":"dl","姓名":"dl","角色":"dl","是否是管理员":"True"}}

这个是返回的数据

接下来就直接开始讲OC部分的实现吧

首先大家需要新建一个类.然后继承至NSObject类就好了

命名的话我是叫"GetWebInfo"

完成后XCODE会创建两个文件分别是GetWebInfo.h与GetWebInfo.m

首先打开.h文件

改成这样

#import<Foundation/Foundation.h>

#defineWEBADDRESS@"http://XXXXX.XXX.XXX/WebServicesForIOS/IOSWebservices.ashx"

@interfaceGetWebInfo:NSObject{
NSString*parameters;
}
@property(nonatomic,retain)NSString*parameters;
-(NSString*)dogetWebInfo;
@end


我这边定义了一个全局的定量

WEBADDRESS

一个string类型的变量

parameters

一个返回string的方法

-(NSString*)dogetWebInfo;

接下来我来分别讲下这三个的作用

首先是定量WEBADDRESS该定量的作用就是配置地址.这样的话如果我需要访问不同的地址的时候只要修改一下该文件就可以了.至于为什么要这么做呢?相信大家应该都是有很多测试地址和正式地址的..到时候只要修改一下前面的网页链接就可以轻松搞定测试与正式的切换了

然后是parameters就是参数了.这边的参数的话我是用很土的办法由大家自己拼接string然后传递

大致的格式就是Method=方法名&参数1名=参数1&参数2名=参数2这样的拼接

这样的话我调用不同的方法只需要传递对应的方法名以及所需要的参数就可以了然后他就会通过dogetWebInfo来获取数据了.

然后是-(NSString*)dogetWebInfo;其实讲了这么多核心的就是dogetWebInfo方法了请直接看.m文件

#import"GetWebInfo.h"
@implementationGetWebInfo
@synthesizeparameters;
-(NSString*)dogetWebInfo{
NSURL*url=[NSURLURLWithString:WEBADDRESS];
NSData*queram=[parametersdataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest*urlRequest=[NSMutableURLRequestrequestWithURL:url];
[urlRequestsetHTTPMethod:@"POST"];
[urlRequestsetHTTPBody:queram];
NSData*result=[NSURLConnectionsendSynchronousRequest:urlRequestreturningResponse:nilerror:nil];
NSString*string=[[NSStringalloc]initWithData:resultencoding:NSUTF8StringEncoding];
returnstring;
}
@end


我来细节的解释下获取数据的实现

我们这边需要用的是NSURL类首先是定义Nsurl的地址

然后queram呢就是我们的参数拉

urlRequest就是返回类了

然后是定义他是Post传输还是get传输再然后setHTTPBody的作用呢就是设置参数.

result呢就是返回的结果这边返回的结果呢是NSData类型的

所以最后呢需要讲result转化为string类型..就可以获得我们的数据了.

之后呢我们就可以对获取过来是json格式的数据进行操作了

当然这边他目前还是nsstring格式的我们还需要转换成可以使用的格式..但是简单来讲我们已经完成了数据获取的全部内容了

是不是非常简单呢?嘿嘿就是这么简单!

PS:这边返回的数据呢是在网页中打开是什么获取获取的就是什么.

大家都知道如果我们直接在网页中访问webservice的时候他是包含xml的内容的实际的内容他会放在<string></string>节点当中

也就是这样分析.所以我才改用.ashx的方法

备注部分:

这部分呢主要是讲下.ASHX的简单实现

新建完.ashx文件的话他回有个默认的方法

然后里面呢会有以个context变量

我们就可以直接使用这个变量了

context.Request["变量名"]这样呢就是获取变量

context.Response.Write("数据");//格式我是用string格式的这样呢就是返回数据了

也很简单.大家可以赶紧去试试吧.

全文就这么多内容了请期待下一篇..下一篇应该会讲解下如何处理获取过来的nsstring格式的json数据




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐