Android手机客户端访问.NET服务器端的方法(1)
2012-04-16 12:17
841 查看
在网上看到一篇关于android访问.NET 服务器的方法,感觉比我以前写的那个代码规范一点,所以保存下来,下面是原文:http://express.ruanko.com/ruanko-express_31/tech-overnight2.html
我们知道webservice是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台、不同语言、不同技术整合到一起。在本文中我们设定的场景就是通过android手机客户端访问基于.NET技术实现的server服务器端,实现两者之间的通信,我们知道android是使用JAVA语言进行开发,所以在实现细节上与常见的android手机客户端访问java语言开发的server端还是有所不同的。
在Android SDK中并没有提供调用webservice的库,因此需要使用第三方SDK来调用webservice。
PC版本的webservcie客户端库非常丰富,例如axis2,cxf等,但这些开发包对于android系统故偶庞大,也未必很容易移植到android系统中,适合手机的webservice客户端的SDK也有一些,一般我们用的是KSOAP2。
首先我们可以去http://code.google.com/p/ksoap2-android/downloads/list进行下载,将下载后代jar文件复制到Eclipse工程的lib目录中。并在Eclipse工程中引用这个jar包。
下面这个例子,实现的即是手机客户端登录,发送用户名和密码至服务器端,并进行判断:
在这里我们必须注意的是.net中web service返回的数据是object类型,不能直接转成soapObject,这点必须特别注意,最后是需要访问网络,需要在AndroidManifest.xml加入:
否则将无法进行正常的访问。
我们知道webservice是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台、不同语言、不同技术整合到一起。在本文中我们设定的场景就是通过android手机客户端访问基于.NET技术实现的server服务器端,实现两者之间的通信,我们知道android是使用JAVA语言进行开发,所以在实现细节上与常见的android手机客户端访问java语言开发的server端还是有所不同的。
在Android SDK中并没有提供调用webservice的库,因此需要使用第三方SDK来调用webservice。
PC版本的webservcie客户端库非常丰富,例如axis2,cxf等,但这些开发包对于android系统故偶庞大,也未必很容易移植到android系统中,适合手机的webservice客户端的SDK也有一些,一般我们用的是KSOAP2。
首先我们可以去http://code.google.com/p/ksoap2-android/downloads/list进行下载,将下载后代jar文件复制到Eclipse工程的lib目录中。并在Eclipse工程中引用这个jar包。
下面这个例子,实现的即是手机客户端登录,发送用户名和密码至服务器端,并进行判断:
public class WebService { private static final String NAME_SPACE = "http://COE.org/"; private static final String URL = "http://192.168.18.44/ serverInsurance/Services.asmx?wsdl"; private static SoapSerializationEnvelope envelope ; //调用WebService提供的方法 public static String transferService(String METHOD_NAME, Map<String,Object> map) { String state=null; SoapObject request = new SoapObject(NAME_SPACE, METHOD_NAME); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String key = entry.getKey().toString(); String value = entry.getValue().toString(); request.addProperty(key,value); } envelope= new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.bodyOut = request; envelope.dotNet = true; HttpTransportSE ht = new HttpTransportSE(URL); try { ht.call(NAME_SPACE + METHOD_NAME, envelope); if (envelope.getResponse() != null) { // .net中web service返回的数据是object类型, 不能直接转成soapObject Object obj = envelope.getResponse(); if (obj != null) { state= obj.toString(); } else { state=null; } } else { state=null; } } catch (Exception e) { state=null; } return state; } } String METHOD_NAME = "LoginCheckUser"; Map<String,Object> map=new HashMap<String,Object>(); map.put("userName", userName); map.put("pwd", pwd); String json= WebService.transferService(METHOD_NAME, map); |
<uses-permission android:name="android.permission.INTERNET" /> |
相关文章推荐
- Android手机客户端访问.NET服务器端的方法(2)
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(四)——Android端Http访问类(转)
- .net中使用ODP.net访问Oracle数据库(无客户端部署方法)
- android客户端访问服务器端(SSH框架)
- Android 6.0手机连接电脑无法后无法访问手机内存的解决方法
- Android手机访问Django测试服务器方法
- android客户端访问后台服务器时常用的一些检查方法
- Android客户端和服务器端数据交互的第三种方法
- android客户端向服务器端验证登陆方法的实现1
- Android contentProvider 访问手机联系人的的两种方法
- android手机客户端上传文件,java servlet服务器端接收并保存到服务器
- android 客户端访问服务器端
- 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
- android 客户端发送http访问服务器端,网络检测
- .net中使用ODP.net访问Oracle数据库(无客户端部署方法)
- 客户端访问服务器端方法(客户端引入服务器端类)
- android手机客户端上传文件,java servlet服务器端接收并保存到服务器
- 如何通过手机客户端Android、Iphone 等访问要求使用客户端证书SSL加密的https网站
- thinkjs判断访问是否是手机客户端方法
- android手机客户端与Tomcat服务器端servlet通信