期刊在线

快速论文发表热线: 010-57745461

客服中心

全国免费咨询:

QQ : 点击这里给我发消息 3077874057


电话:010-57745461


邮箱: hexinon@163.com


邮箱:hexinon@126.com

期刊库导航

行业资讯

最新论文

最热论文

利用ASIHTTPRequest+WebService实现iOS访问远程数据库

2015-05-25 09:00:49  字体:   打印 收藏 

摘 要:【 摘 要 】 绝大多数数据库都运行在远程服务器端,以便于维护和支持与各种不同平台的设备通信。iOS不支持直接访问远程数据库,因此文章提出了一种利用ASIHTTPRequest + Web Service实现iOS访问远程数据库。 【 关键词 】 iOS;ASIHTTPRequest;WebService;

关键词:关于网络安全的论文发表,发表计算机信息管理论文,计算机网络实用技术论文投稿


  【 摘 要 】 绝大多数数据库都运行在远程服务器端,以便于维护和支持与各种不同平台的设备通信。iOS不支持直接访问远程数据库,因此文章提出了一种利用ASIHTTPRequest + Web Service实现iOS访问远程数据库。

  【 关键词 】 iOS;ASIHTTPRequest;WebService;远程数据库

  【 Abstract 】 Most of databases are running on a remote server, in order to be maintained and support the communication with equipment on different platforms. iOS does not support access to remote database directly, so this paper presents a measure to realize iOS’s access to remote database using ASIHTTPRequest+WebService.

  【 Keywords 】 ios; asihttprequest; webservice; remote database

  1 引言

  运行于移动设备的iOS系统自发布以来就受到广大开发者及用户的青睐,但由于移动设备的性能和内存远不及传统PC,很多数据量庞大数据库不能直接运行在移动设备上,而是运行在远程的服务器端。为了让iOS能够访问远程数据库,本文借用ASIHTTPRequest及WebService作为iOS与远程数据库通信的桥梁,实现iOS快速、有效、简便地访问远程数据库并进行数据交互。

  2 ASIHTTPRequest

  2.1 ASIHTTPRequest类库

  iOS SDK中本已包含HTTP网络请求的相关API,但是这些API相当复杂,调用起来非常繁琐。ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API。用Objective-C编写,能很好地应用在Mac OS和iOS平台的程序中,能实现大部分HTTP请求和基于REST的服务之间的交互,是一款及其强劲的HTTP访问开源项目。

  2.2 使用ASIHTTPRequest的原因

  客户端向服务器发送请求,并调用服务器上对应的脚本。本文选用ASIHTTPRequest发送请求有几个原因:(1)通过简单的接口,即可与服务器进行数据交互;(2)能直接将请求发送到服务器并执行对应脚本;(3)支持发送包含数据的请求,数据可以是多种类型,如字符串、JSON对象、本地文件等。

  3 Web Service

  3.1 什么是Web Service

  Web Service是一个运行于Web的应用程序,独立于其他平台,数据类型为XML,使用SOAP、WSDL、UDDI等标准。其作用是接收来自Internet上其他平台的请求,实现运行在不同设备上的不同应用相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。

  3.2 Web Service架构

  Web Service基于SOA(Service Oriented Architecture)架构,包含三个参与者:服务提供者、服务请求者、服务代理,三个基本操作:发布、查找、调用。其工作过程:(1)服务提供者将所提供的服务发布到服务代理的一个目录上;(2)服务请求者首先到服务代理提供的目录上搜索服务,得到如何调用该服务的信息;(3)将从服务代理得到的信息发送给服务提供者以调用相应的服务。

  4 iOS调用Web Service与远程数据库通信实例

  iOS客户端与远程数据库通信的具体实现方式:(1)iOS客户端调用ASIHTTPRequest类库向服务器提交请求;(2)服务器根据提交的请求,生成相应的SQL语句访问数据库服务器,把结果返回到iOS客户端;(3)iOS客户端收到响应后,执行相应的操作。

  现在将用简单的例子来实现在iOS平台利用ASIHTTPRequest + WebService与远程数据库交互。

  4.1 服务器端程序

  发布一个简单的Web服务,修改指定的电梯产品信息并返回修改后的信息。这个Web Service是用PHP在Apache上实现的。实现的主要代码如下:

  //接收电梯信息的JSON对象,修改远程数据库,并以JSON格式返回修改后的信息

  $ json=$_POST['lift_json']; $dejson=json_decode($json,true);

  $liftid=$dejson[0][0]; $number=$dejson[0][1]; $department=$ dejson[0][2]; $applied=$dejson[0][3]; $equipmentnum=$dejson[0][4]; $madeby=$dejson[0][13]; $serviced=$dejson[0][5]; $inspected=$dejson[0][7]; $nextyear=$dejson[0][8]; $nextmonth=$dejson[0][9]; $emergency=$dejson[0][6]; $sheng=$dejson[0][14];

  $sql="UPDATE liftinfo SET number='$number', department='$department', applied='$applied', equipmentnum='$equipmentnum', madeby='$madeby', serviced='$serviced', inspected='$inspected', nextyear='$nextyear', nextmonth='$nextmonth', emergency='$emergency', sheng='$sheng' WHERE liftid='$liftid'";

  mysql_query($sql, link);

  $result=mysql_query("SELECT * FROM liftinfo WHERE liftid='$liftid'", link);

  $array=array();

  $array[]=mysql_fetch_row($result, MYSQL_ASSOC);

  echo json_encode($array);

  mysql_free_result($result);

  4.2 iOS客户端

  要使用ASIHTTPRequest类库,必须先将其添加到项目里,并在需要调用的文件内包含其头文件,这里用到两个,分别是ASIHTTPRequest.h和ASIFormData Request.h。

  iOS通过ASIHTTPRequest调用WebService可通过以下几步完成:

  (1)指定WebService脚本的URL:

  ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:(NSURL*)];

  (2)指定请求的方法,若不指定则默认为GET方法,若需要发送数据通常使用POST:

  [request setRequestMethod:(NSString*)];

  (3)指定POST请求中数据的值和名称,名称需要与WebService接收的名称一致:

  [request setPostValue:(id) forKey:(NSString*)];

  (4)发送同步请求:

  [request startSynchronous];

  实现的主要代码:

  //将JOSN格式的电梯信息发送给WebService,并将返回的结果转换为字典

  - (NSDictionary*)updateLift:(NSString*)jsonString {

  NSDictionary *liftInfoDict=[[NSDictionary alloc]init];

  NSURL *url=[NSURL URLWithString:@"http://127.0.0.1:8888/test.php"];

  ASIFormDataRequest *request=[ASIFormDataRe  quest requestWithURL:url];

  [request setRequestMethod:@"POST"];

  [request setPostValue:jsonString forKey:@"lift_json"];

  [request startSynchronous];

  NSString *response=[request responseString];

  NSArray *liftInfoArray=[response objectFromJSONString];

  liftInfoDict=[liftInfoArray objectAtIndex:0];

  return liftInfoDict;

  }

  5 结束语

  本文利用ASIHTTPRequest + WebService实现了iOS访问远程数据库并进行数据交互的简单应用。在实际应用中可能还会用到ASIHTTPRequest的其他更强大的功能。同时,在编写Web Service服务时,还要注意它的安全机制和缓存机制等,以提高系统的整体性能。

  参考文献

  [1] 管蕾.iOS8开发指南[M].北京:人民邮电出版社,2014.

  [2] 黄淑静,杨红梅.利用JSON+WebService实现Android访问远程数据库[J].科技信息,2013,9:98-99,123.

  [3] 叶柏龙,张蓉.加速获取iOS移动数据的有效方法[J].电脑与信息技术,2014,22(3):1-3,10.

  [4] 胡泽,廖闻剑,彭艳兵. WebService技术研究及应用[J].硅谷,2009,5:48,8.

  作者简介:

  施波迪(1992-)男,广西柳州人,本科;主要研究方向和关注领域:列车牵引与传动方向。

[版权说明]本站论文版权属于作者本人,您可以参考、阅读、鉴赏本站论文,也可以利用本站论文进行论文创作,但不得抄袭、复制!本站免费论文主要来源于用户投稿和互联网,如果涉及到侵权问题,请联系我们予以删除。


上一篇:一种分布式仿真通讯软件总线实现方法 下一篇:基于IPv4/IPv6双栈技术的混合网络设计与实现

联系我们

投稿咨询电话:010-57745461
投稿咨询QQ:3077874057
论文投稿邮箱:hexinon@163.com
投诉建议邮箱:hexinon@126.com
在线投稿

论文发表说明

1. 如果您需要发表论文,请联系我们,客服人员会及时处理;
2. 专业编辑人员,为您的论文提供建议,使论文顺利发表;
3. 合作期刊,全国最全,与杂志社关系稳定,保证刊期。