前段时间做了2个Android方面的项目,现在想抽空对其中的有些知识点进行下总结,也算进一步的学习了。
由于开发手机客户端一般都要和服务器打交道,因此用户的登录验证在一般的应用中都少不了。因而我将以前做的项目中的使用webservice验证的这块
单独写出来了。我们的手机应用的服务器端采用的是Asp.net开发的,因而webservice的开发也是用C#开发的,发布在IIS上的。
在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。PC版本的WebService库非常丰富,但这些对Android来说过于庞大。适合手机的WebService客户端的SDK有一些,比较常用的是KSOAP2。
KSOAP2 地址:http://code.google.com/p/ksoap2-android/
我们在项目中使用的是: ksoap2-android-assembly-2.4-jar-with-dependencies.jar。
在项目中引用KSOAP2后,我们就要引入下面几个包了:
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
然后我们就要编写调用验证用户登录的方法,并在其中调用webservice方法了,代码如下:
public String GetUserWS(String methodName, String[] parameterList) {
// 创建SoapObject对象,并指定WebService的命名空间和调用的方法名
SoapObject request = new SoapObject(Config.NAMESPACE, methodName);
// 调用的函数如果有参数,这里可以设置需要传递的参数 注意:第一个参数使用arg0 多个参数依次类推 arg1,arg2...
if (parameterList != null) {
// for (int i = 0; i < parameterList.length; i++) {
request.addProperty("key", parameterList[0]);
request.addProperty("userName", parameterList[1]);
request.addProperty("passWord", parameterList[2]);
// }
}
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// envelope.setOutputSoapObject(request);
// 上边的一句等价于下边的这句 将SoapObject对象赋给envelope对象
envelope.bodyOut = request;
// 当前开发的是.net WS 这里需要不调用Java WS
envelope.dotNet = true;
/*
* 这里不要使用 AndroidHttpTransport ht = new AndroidHttpTransport(URL);
* 这是一个要过期的类
* 创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URL
*/
//这里的SOAP_GETUSERINFOACTION = "http://172.16.xx.xxx:3366/Service/EWineService.asmx?op=Mobile_GetUserInfo";
HttpTransportSE ht = new HttpTransportSE(Config.SOAP_GETUSERINFOACTION);
try {
// 请求WS
ht.call(Config.SOAP_ACTION, envelope);
if (envelope.getResponse() != null) {
// 获得WS函数返回值信息
// System.out.println(envelope.getResponse().toString());
Log.d("wine", "GetUserWS Result:"
+ envelope.getResponse().toString());
return envelope.getResponse().toString();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
Log.d("wine", "GetUserWS Error:" + e.getMessage());
}
return null;
}
具体的调用代码如下:
// 点确定按钮所执行的东东
String[] parameterList = new String[3];
parameterList[0] = LOGINKEY;
parameterList[1] = TxtUser.getText().toString();
parameterList[2] = TxtPassword.getText().toString();
//注意Config.METHOD_GETUSERINFO是具体调用的webservice中方法名,例如:METHOD_GETUSERINFO = "Mobile_GetUserInfo";
// 调用webService
String strRemoteInfo = GetUserWS(Config.METHOD_GETUSERINFO,
parameterList);
分享到:
相关推荐
以上就是Android中使用WebService验证用户登录的基本流程和技术要点,实际开发中还需要结合项目需求和具体情况进行调整优化。通过这个示例,开发者可以了解如何构建一个完整的用户登录验证系统,为Android应用提供...
本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增删改查操作。 首先,理解概念: 1. Android:Android是一种开源操作系统,主要用于移动设备,如智能手机和平板电脑。 2. ...
这样的示例不仅适用于基础的数学运算,还可以扩展到其他复杂业务场景,例如用户注册、登录验证、数据同步等。在实际项目中,通常会结合JSON或XML格式的数据交换,提高数据传输效率和解析的便利性。 总之,Android...
总的来说,这个项目是学习如何在Android应用中使用ksoap2库与SOAP WebService进行交互的绝佳实践。通过研究源代码,开发者可以深入理解Android网络请求的实现过程,提高自己的Android开发技能。
在本场景中,我们讨论的是如何将Android设备上的文件上传到由C#编写的Web服务(WebService)。以下是对这个过程的详细解释: 1. **Android端的文件选择与读取**: - Android应用首先需要获取用户选择的文件。可以...
在Android应用中,这样的功能可以用于用户登录验证、获取动态数据(如新闻、天气等)、保存用户数据到云端等场景。 总之,Android配合WebService的开发涉及网络通信、数据序列化和反序列化、错误处理等多个方面。...
最后,`webService`可能是一个示例的Web服务接口或者一个测试服务器地址,用于演示如何从Android客户端调用服务端方法,获取Oracle数据库中的数据。在实际项目中,这个接口可能包括增删改查(CRUD)操作,以及更复杂...
8. **登录示例**:在"LoginTest"这个例子中,可能涉及到用户验证。客户端向Web服务发送包含用户名和密码的请求,服务器验证后返回成功或失败的信息。这通常涉及XML或JSON格式的数据交换。 9. **源码分析**:Android...
描述中的"简单的Web服务小例子"可能是指一个小型的示例项目,用于展示如何创建和使用Web服务。这样的例子通常包括客户端和服务端两部分。服务端提供Web服务,客户端则调用这些服务,完成特定的任务。这可以帮助初学...
本示例“android webservice 对象序列化例子”关注的就是如何在Android应用中处理这一过程。 **对象序列化** 是将Java对象转换为可以存储或传输的数据格式的过程。在Android中,这通常是将对象转换为XML或JSON字符...
本示例将探讨如何在Android应用中使用POST方法请求WebService,同时也会提及一个已包含的Web项目,便于快速部署和运行代码。 首先,我们要了解什么是WebService。WebService是一种基于网络的、分布式的模块化组件,...
"android基于webservice云端运用最新代码EasyEnglish"是一个示例项目,展示了如何在Android应用中集成Webservice技术,可能是为了提供英语学习相关的服务。这个项目的重点可能在于如何与云端进行有效且安全的通信,...
解析JSON数据为Java对象,以便在Android应用中使用。 5. **权限管理**: 在Android中,进行网络操作需要在`AndroidManifest.xml`中声明`INTERNET`权限。 6. **线程管理**: 网络请求不应在主线程上执行,以免阻塞...
以下是一个详细的步骤和示例代码,说明如何在Android中利用ksoap2调用WebService。 1. **添加ksoap2依赖** 首先,你需要下载ksoap2的jar文件,如`ksoap2-android-assembly-3.6.1-jar-with-dependencies.jar`。将这...
在Android中,我们可以使用内置的`org.xmlpull.v1.XmlPullParser`库来解析XML响应。首先,我们需要创建一个解析器实例,并设置输入源。然后,通过监听事件(如START_TAG、END_TAG等)来提取XML中的节点信息。 2. **...
Android Webservice教材是针对Android开发者设计的一套学习资源,它涵盖了使用Android平台与Web服务进行交互的各种技术。在Android应用开发中,Web服务通常用于获取远程数据、实现云同步等功能,使得应用程序能够与...
本项目"安卓连接Webservice"是一个示例,展示了如何在Android应用中实现这一功能。 一、SOAP与RESTful Web Service 1. SOAP(Simple Object Access Protocol):SOAP是一种基于XML的协议,主要用于Web服务通信。它...
在提供的文件`wsserver2`和`cxf_webservice_android`中,很可能是服务器端的配置和Android客户端的示例代码,具体实现细节需参考这些文件内容。总的来说,实现Android客户端与使用Apache CXF和WSS4J的Web服务的认证...
10. **实际应用**:在实际开发中,可能需要对请求参数进行加密,或者使用Token验证身份。同时,考虑到性能和用户体验,可以使用缓存策略,减少不必要的网络请求。 以上是关于“android访问webservice”的核心知识点...
本实例将深入探讨如何构建一个Android Web Service客户端和服务端,并提供可直接运行的代码示例。以下是对这两个重要组件的详细说明。 **一、Android Web Service客户端** 在Android客户端,通常使用HTTP库来调用...