iPhone中调用RESTFUL Service

REST(Resentational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。

 Iphone调用使用ASIHttpRequest,它是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装,非常的好用。

需求:根据用户名获取用户的信息。

首先我们先做一个这样的页面效果:

iPhone中调用RESTFUL Service_第1张图片

定义下面方法与button的点击事件对应:

- (IBAction)fetchJson:(id)sender;
- (IBAction)fetchJson:(id)sender
{
NSString *name = username.text;
    NSLog(@"==========%@",name);
    
    NSURL *url = [NSURL URLWithString:@"http://xxx.com/ws/mooc/lesson/getUserInfo"];
    ASIHTTPRequest *req = [ASIHTTPRequest requestWithURL:url];
    [req addRequestHeader:@"username" value:name];
    [req setRequestMethod:@"GET"];
    [req startSynchronous];
    NSError *error = [req error];
    if (!error) {
        NSString *response = [req responseString];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"返回的数据"
                                                            message:response
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
        [alertView show];
        [alertView release];
}
}

你会发现这种方式比使用soap协议更简洁易用。

说道这里你们又该问了:怎么在项目中使用ASIHttpRequest这个框架呢?不急这就给你们道来。

1、打开Xcode,找到我们的项目,创建一个文件夹External文件放置我们需要的资源文件,

iPhone中调用RESTFUL Service_第2张图片

所需文件列表如下:

ASIHTTPRequestConfig.h

ASIHTTPRequestDelegate.h

ASIProgressDelegate.h

ASICacheDelegate.h

ASIHTTPRequest.h

ASIHTTPRequest.m

ASIDataCompressor.h

ASIDataCompressor.m

ASIDataDecompressor.h

ASIDataDecompressor.m

ASIFormDataRequest.h

ASIInputStream.h

ASIInputStream.m

ASIFormDataRequest.m

ASINetworkQueue.h

ASINetworkQueue.m

ASIDownloadCache.h

ASIDownloadCache.m

ASIAuthenticationDialog.h

ASIAuthenticationDialog.m

Reachability.h (在源码的 External/Reachability 目录下)

Reachability.m (在源码的 External/Reachability 目录下)

具体详见官网http://allseeing-i.com/ASIHTTPRequest/

2、链接相关类库

1. 选中项目

2. 选中目标

3. 跳转到“Build Phases”标签

4. 展开“Link Binary With Libraries”分组

5. 点击“+”添加类库(需要的类库有CFNetwork.framework,SystemConfiguration.framework,MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib)

如图:

iPhone中调用RESTFUL Service_第3张图片

你可能感兴趣的:(iPhone中调用RESTFUL Service)