android loginDemo +WebService用户登录验证 续篇
2013-01-15 22:30
531 查看
本文为android loginDemo +WebService用户登录验证的续篇,在这里我主要总结的是在LoginActivity的demo中添加webservice代码实现用户网络验证(本地验证参考android loginDemo +WebService用户登录验证)。
1、添加用户上网权限
在AndroidManifest.xml中添加用户权限,添加如下代码使用户有上网的权限。
<uses-permission android:name="android.permission.INTERNET"/>
2、定义Webservice的命名空间和服务地址以及Webservice方法,定义android下webservice的相关对象。
Webservice的服务地址和命名空间及内部方法的获得,请参考(Android 使用.net开发的webservice做用户登录验证)中的WebService解析。关于android下webservice的使用请参考()webservice的入门学习。
定义Webservice相关函数代码
3、删除attemptLogin方法中的关于用户邮件验证的部分,(程序中有一些要删除的部分,根据理解)。
4、在attemptLogin方法中更改异步方法mAuthTask参数的传递类型。
mAuthTask = new UserLoginTask();
mAuthTask.execute(mEmail,mPassword);
5、重新修改异步方法实现用户登录验证(关于异步的学习可以参考AsyncTask(异步)和Thread(线程)的使用与对比.)
总结:“关于android loginDemo +WebService用户登录验证”实验中遇到的问题及知识点总结
1、@Override是什么意思
没什么用,这是IDE编辑器为你自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次。
2、@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)。
说明应用的API版本,在代码中获得平台的SDK版本与这个版本对比,在代码中判断应用与平台的兼容性。
关于获取及使用用户信息的Bulid列的介绍及使用说明,参考android专栏。
3、EditText:
①android:imeOptions 设置软键盘的Enter键。有如下值可设置:normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone,flagNoExtractUi ,flagNoAccessoryAction,flagNoEnterAction。可用’|’设置多个。
设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭。
android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个。
②setError(string);设置编辑框的提示,例如setError(“密码不能为空”);
③focusView.requestFocus();设置编辑框获得焦点,实例:
focusView = mEmailView;
focusView.requestFocus();
View:
①setVisibility设置空间在界面的可见性
1.View.VISIBLE,常量值为0,意思是可见的
2.View.INVISIBLE,常量值是4,意思是不可见的
3.View.GONE,常量值是8,意思是不可见的,并且不占用布局空间
XML:
①Android:Layout_gravity 设置该组件在其容器中的对其方式。
Android:Layout_gravity=” center“(在组件中心)。
android:gravity 设置组件的子组件在组件中的位置,可以同时制定多种对齐方式的组合
android:gravity="left|center_vertical"代表出现在屏幕左边,而且垂直居中。
②android:inputType 设置文本的输入类型
android:inputType =“textPassword”设置输入类型为密码。
③<b> 标签呈现粗体文本效果:
<string name="action_sign_in_register"><b>Sign in</b> or register</string>
String 类
①String.split
根据给定的正则表达式的匹配来拆分此字符串。
4、Build相关属性和调用系统信息的方法:
5、AsyncTask(异步)和Thread(线程)的使用与对比
6、做这个东西和总结了这篇文章,主要是在寻找自己的学习方法,也希望在学习的过程中留下点东西。
1、添加用户上网权限
在AndroidManifest.xml中添加用户权限,添加如下代码使用户有上网的权限。
<uses-permission android:name="android.permission.INTERNET"/>
2、定义Webservice的命名空间和服务地址以及Webservice方法,定义android下webservice的相关对象。
Webservice的服务地址和命名空间及内部方法的获得,请参考(Android 使用.net开发的webservice做用户登录验证)中的WebService解析。关于android下webservice的使用请参考()webservice的入门学习。
定义Webservice相关函数代码
/*******************************************/ final static String SERVICE_NS = "http://tempuri.org/"; //Webservice所在命名空间 final static String SERVICE_URL = "http://192.168.1.213:9006/WS_Base.asmx";//Webservice服务地址 final static String methodName = "AuthenticateLogin";//要使用的接口函数 private HttpTransportSE ht; //该对象用于调用WebService操作 private SoapSerializationEnvelope envelope;//上一个类信息的载体 private SoapObject soapObject; //将参数传递给WebService /**********************************************/
3、删除attemptLogin方法中的关于用户邮件验证的部分,(程序中有一些要删除的部分,根据理解)。
4、在attemptLogin方法中更改异步方法mAuthTask参数的传递类型。
mAuthTask = new UserLoginTask();
mAuthTask.execute(mEmail,mPassword);
5、重新修改异步方法实现用户登录验证(关于异步的学习可以参考AsyncTask(异步)和Thread(线程)的使用与对比.)
public class UserLoginTask extends AsyncTask<String, Void, Boolean> { @Override protected Boolean doInBackground(String... params) { // TODO: attempt authentication against a network service. //set webservices attribute /***********************************************/ //创建HttpTransportSE对象,该对象用于调用WebService操作 ht = new HttpTransportSE(SERVICE_URL); ht.debug = true; //创建SoapSerializationEnvelope对象,它是HttpTransportSE调用WebService时消息 //的载体;客户端需要传入的参数,需要通过SoapSerializationEnvelope对象的bodyOut属性 //传给服务器;服务器响应生成的SOAP消息也通过该对象的bodyIn属性来获取。 envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);//指明SOPA规范 //创建SoapObject对象,创建对象时需要传入调用Web Service的命名空间、方法名。 soapObject = new SoapObject(SERVICE_NS, methodName); /************************************************************/ //SoapObject 对象的addProperty(String name,Object value)方法将参数传递给服务端 //该方法的name参数指定参数名;value参数指定参数值。 //如果方法存在多个参数,多次调用addProperty即可。 soapObject.addProperty("userName",params[0]); soapObject.addProperty("password",params[1]); envelope.bodyOut = soapObject; //设置WebService的开发类型 envelope.dotNet = true; try { //调用远程WebService,call()方法的参数意义 第一个参数:命名空间+方法名, //第二个参数:SoapSerializationEnvelope对象 ht.call(SERVICE_NS+methodName, envelope); if(envelope.getResponse()!=null) { //SoapSerializationEnvelope对象的bodyIn属性返回一个SoapObject对象, //该对象就代表了WebService的返回消息。 //WebService在服务器端返回值是String类型的数值的时候使用Object代替SoapObject SoapObject result = (SoapObject)envelope.bodyIn; Object detail1 = (Object) result.getProperty(0); return detail1.toString().equals("true"); } return false; } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { // TODO: handle exception e.printStackTrace(); } return false; } @Override protected void onPostExecute(final Boolean success) { mAuthTask = null; showProgress(false); if (success) { finish(); } else { mPasswordView .setError(getString(R.string.error_incorrect_password)); mPasswordView.requestFocus();//设置密码框获得焦点 } } @Override protected void onCancelled() { mAuthTask = null; showProgress(false); } }
总结:“关于android loginDemo +WebService用户登录验证”实验中遇到的问题及知识点总结
1、@Override是什么意思
没什么用,这是IDE编辑器为你自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次。
2、@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)。
说明应用的API版本,在代码中获得平台的SDK版本与这个版本对比,在代码中判断应用与平台的兼容性。
关于获取及使用用户信息的Bulid列的介绍及使用说明,参考android专栏。
3、EditText:
①android:imeOptions 设置软键盘的Enter键。有如下值可设置:normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone,flagNoExtractUi ,flagNoAccessoryAction,flagNoEnterAction。可用’|’设置多个。
设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭。
android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个。
②setError(string);设置编辑框的提示,例如setError(“密码不能为空”);
③focusView.requestFocus();设置编辑框获得焦点,实例:
focusView = mEmailView;
focusView.requestFocus();
View:
①setVisibility设置空间在界面的可见性
1.View.VISIBLE,常量值为0,意思是可见的
2.View.INVISIBLE,常量值是4,意思是不可见的
3.View.GONE,常量值是8,意思是不可见的,并且不占用布局空间
XML:
①Android:Layout_gravity 设置该组件在其容器中的对其方式。
Android:Layout_gravity=” center“(在组件中心)。
android:gravity 设置组件的子组件在组件中的位置,可以同时制定多种对齐方式的组合
android:gravity="left|center_vertical"代表出现在屏幕左边,而且垂直居中。
②android:inputType 设置文本的输入类型
android:inputType =“textPassword”设置输入类型为密码。
③<b> 标签呈现粗体文本效果:
<string name="action_sign_in_register"><b>Sign in</b> or register</string>
String 类
①String.split
根据给定的正则表达式的匹配来拆分此字符串。
4、Build相关属性和调用系统信息的方法:
5、AsyncTask(异步)和Thread(线程)的使用与对比
6、做这个东西和总结了这篇文章,主要是在寻找自己的学习方法,也希望在学习的过程中留下点东西。
相关文章推荐
- android loginDemo +WebService用户登录验证
- android loginDemo +WebService用户登录验证
- 分别用(Windows/Form/Soap/WebService)实现用户身份验证(含示例代码下载)
- PBWEBFROM 采用JS来验证用户的合法性及登录
- Android中使用webservice验证用户登录的示例
- [已解决]:java webservice 用户验证 (服务端 + 客户端)
- Android中使用webservice验证用户登录的示例
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- Android实战系列(二)---多用户类型登录(webview)
- android+servlet登录验证简单demo
- 分别用(Windows/Form/Soap/WebService)实现用户身份验证(含示例代码下载)
- ssh+maven+annotation+shiro搭建运行用户登录权限验证代码demo下载
- Android 使用.net开发的webservice做用户登录验证
- Android中使用webservice验证用户登录的示例
- Android基础学习总结(十二)——利用Bmob实现用户账户体系(注册、登录、验证等)
- 获取MySQL加密密码并验证用户输入(登录界面),retrieve hashpwd from mysql and compare with input password on login
- android+servlet登录验证简单demo
- Zend Framework2-用户登录创建(并在Module验证) using AuthenticationService with rememberMe
- Androidannotation使用之@Rest获取资源及用户登录验证(一)
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)