iPhone中调用RESTFUL Service

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

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

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

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

定义下面方法与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文件放置我们需要的资源文件,

所需文件列表如下:

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)

如图:

时间: 2024-10-06 14:37:35

iPhone中调用RESTFUL Service的相关文章

调用Restful Service 出现415 Unsupported Media Type的问题(Rest Request Header中的Content-Type问题)

用Chrome的插件Simple REST Client 调用POST的REST服务时,老是报415错误,如图. 一开始就以为是服务端的问题,各种google,百度,折腾了一下午未果. 晚上继续看,一不小心看到返回的Response的Headers中Content-Type的值与冒号之间有一个空格,于是将Request的Content-Type:application/json;charset=UTF-8改成Content-Type: application/json;charset=UTF-8

关于iphone中微信无法调用百度api的解决方案

http://api.map.baidu.com/direction?origin=latlng:22.550297,113.962555|name:我的位置&destination=22.553143,113.95336&mode=driving&region=''&output=html&src=yourCompanyName|yourAppName 这样的地址在安卓的微信中是能够调用百度的api,但是在iPhone的微信中不行.原因是参数需要encodeurl

在Salesforce中向外公布Service去创建Lead,并且用Asp.Net去调用此Service

1):在Salesforce中如何配置,向外公布此Service,请看如下链接: http://www.shellblack.com/marketing/web-to-lead/ 2):如何在Asp.Net中调用此Service去创建对应的Lead,请看如下代码: try { StringBuilder data = new StringBuilder(); data.Append("oid=[youroid]"); data.Append("&first_name=

ASP.NET4.0中JavaScript脚本调用Web Service 方法

环境:VS2019  .net 4.0 framework 根据教材使用ScriptManager在JavaScript中调用Web service 时,失败.现将过程和解决方法记录如下: 1.定义Web Service using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace AjaxTest1 { /// <

基于.Net FrameWork的 RestFul Service

关于本文 这篇文章的目的就是向大家阐述如何在.net framework 4.0中创建RestFul Service并且使用它. 什么是web Services,什么是WCF 首先讲到的是web Service, 它是一种能够让客户端程序在web页面上通过HTTP协议请求需要数据的部件.我们可以用Asp.net创建普通的Web Services并且让这些Services能够被客户端程序所调用. 其次说到的是Web Services,它是一个编程平台,它能够通过遵循Simple Object Ac

ASP.NET 如何调用 Web Service

在.NET 中调用 Web Service 其实和创建 Web Service 一样简单. 实现步骤如下. (1)首先我们创建一个 ASP.NET Web 应用程序. (2)添加 Web Service 引用. 在项目上单击鼠标右键,在弹出的快捷菜单中选择“添加 Web 引用”命令,如图 添加引用分以下 3 种情况. 1.如果是本解决方案中的 Web 服务,则选第一个,程序会自动转向解决方案中的服 务地址. 2.如果是本计算机上的 Web 服务,则系统会自动寻找本机的 Web 服务,供你选择.

区块链中的RESTFUL链码调用API原理详解

本文适合于熟悉开源区块链技术Hyperledger Fabric,以及希望更高效地使用华为云区块链服务的读者.当然,也欢迎任何对区块链技术有兴趣的读者阅读本文,相信读者们都能从中受益. 2018年2月1日 华为云发布企业级区块链开放平台区块链服务BCS(Blockchain Service),是基于开源区块链技术和华为在分布式并行计算.数据管理.安全加密等核心技术领域多年积累基础上推出的企业级区块链云服务产品,旨在帮助各行业.企业在华为云上快速.高效的搭建企业级区块链行业方案和应用. 如前所述,

【android】在Service的onStartCommand()中调用stopself()应该注意的问题

在Service的onStartCommand()中调用stopself()后并不会立刻destroy掉service,而是等onStartCommand()执行完才destroy. public class TestService extends Service { private String TAG = "TestService"; @Override public void onCreate() { // TODO Auto-generated method stub Log.

在Silverlight中实施RESTful调用

在Silverlight中实施RESTful调用:   http://book.51cto.com/art/201006/206314.htm    http://bbs.csdn.net/topics/320039569 http://www.cyqdata.com/cnblogs/article-detail-37245 在Silverlight中实施RESTful调用,布布扣,bubuko.com