(一)Android OkHttp 用户登陆demo

android开发中网络通讯必不可少,目前使用率较高的http框架有Okhttp、nohttp、volley等等,

下面做一个用户登陆的demo,说明一下Okhttp的用法,废话不多说,看代码。

LoginActivity.java

 1 package com.junyi.shangqifixture;
 2
 3 import java.io.IOException;
 4
 5 import android.app.Activity;
 6 import android.content.Intent;
 7 import android.os.AsyncTask;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12 import android.widget.EditText;
13 import okhttp3.FormBody;
14 import okhttp3.OkHttpClient;
15 import okhttp3.Request;
16 import okhttp3.RequestBody;
17 import okhttp3.Response;
18
19 public class LoginActivity extends Activity {
20
21     private final OkHttpClient client = new OkHttpClient();
22     private EditText editAccount,editPwd;
23
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         // TODO Auto-generated method stub
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_login);
29
30         editAccount=(EditText)findViewById(R.id.accountEdittext);
31         editPwd=(EditText)findViewById(R.id.pwdEdittext);
32
33         Button btnLogin=(Button)findViewById(R.id.login_in);
34         btnLogin.setOnClickListener(new OnClickListener() {
35
36             @Override
37             public void onClick(View arg0) {
38                 // TODO Auto-generated method stub
39                 new AnsyTry().execute(editAccount.getText().toString(),editPwd.getText().toString());
40             }
41         });
42     }
43
44     private class AnsyTry extends AsyncTask<String, Integer, String>{
45
46         @Override
47         protected String doInBackground(String... params) {
48             // TODO Auto-generated method stub
49             try {
50                 RequestBody formBody = new FormBody.Builder()
51                         .add("account", params[0])
52                         .add("pwd", params[1])
53                         .build();
54
55                 Request request = new Request.Builder()
56                         .url("http://baidu.com")
57                         .post(formBody)
58                         .build();
59
60                 Response response = client.newCall(request).execute();
61                 if(response.isSuccessful()){
62                     return response.body().string();
63                 }
64             } catch (IOException e) {
65                 // TODO Auto-generated catch block
66                 e.printStackTrace();
67             }
68             return null;
69         }
70
71         @Override
72         protected void onPostExecute(String result) {
73             // TODO Auto-generated method stub
74             super.onPostExecute(result);
75
76             //TODO 此处判断返回值
77
78             Intent intent = new Intent();
79             intent.setClass(LoginActivity.this, MainActivity.class);
80             startActivity(intent);
81             finish();
82         }
83     }
84 }

activity_login.xml

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3     android:layout_width="fill_parent"
  4     android:layout_height="fill_parent"
  5     android:background="@drawable/bkcolor"
  6     android:orientation="vertical" >
  7
  8     <ImageView
  9         android:id="@+id/iv1"
 10         android:layout_width="match_parent"
 11         android:layout_height="wrap_content"
 12         android:layout_gravity="center"
 13         android:layout_marginTop="20dp"
 14         android:src="@drawable/head" />
 15
 16     <RelativeLayout
 17         android:id="@+id/editRel"
 18         android:layout_width="fill_parent"
 19         android:layout_height="wrap_content"
 20         android:layout_marginTop="20dp" >
 21
 22         <RelativeLayout
 23             android:id="@+id/accountRel"
 24             android:layout_width="fill_parent"
 25             android:layout_height="wrap_content"
 26             android:layout_marginTop="14dp"
 27             android:background="@drawable/preference_first_item"
 28             android:clickable="true"
 29             android:gravity="center_vertical" >
 30
 31             <TextView
 32                 android:id="@+id/account"
 33                 android:layout_width="wrap_content"
 34                 android:layout_height="wrap_content"
 35                 android:padding="8dp"
 36                 android:text="@string/account"
 37                 android:textColor="#000"
 38                 android:textSize="17sp" />
 39
 40             <EditText
 41                 android:id="@+id/accountEdittext"
 42                 android:layout_width="fill_parent"
 43                 android:layout_height="wrap_content"
 44                 android:layout_centerVertical="true"
 45                 android:layout_marginLeft="20dip"
 46                 android:layout_toRightOf="@id/account"
 47                 android:background="@null"
 48                 android:hint="@string/account"
 49                 android:text="test"
 50                 android:textSize="15sp" />
 51         </RelativeLayout>
 52
 53         <RelativeLayout
 54             android:id="@+id/pwdRel"
 55             android:layout_width="fill_parent"
 56             android:layout_height="wrap_content"
 57             android:layout_below="@id/accountRel"
 58             android:background="@drawable/preference_last_item"
 59             android:clickable="true"
 60             android:gravity="center_vertical" >
 61
 62             <TextView
 63                 android:id="@+id/pwd"
 64                 android:layout_width="wrap_content"
 65                 android:layout_height="wrap_content"
 66                 android:padding="8dp"
 67                 android:text="@string/pwd"
 68                 android:textColor="#000"
 69                 android:textSize="17sp" />
 70
 71             <EditText
 72                 android:id="@+id/pwdEdittext"
 73                 android:layout_width="fill_parent"
 74                 android:layout_height="wrap_content"
 75                 android:layout_centerVertical="true"
 76                 android:layout_marginLeft="20dip"
 77                 android:layout_toRightOf="@id/pwd"
 78                 android:background="@null"
 79                 android:hint="@string/pwd"
 80                 android:text="test"
 81                 android:inputType="textPassword"
 82                 android:textSize="15sp" />
 83         </RelativeLayout>
 84     </RelativeLayout>
 85
 86     <Button
 87         android:id="@+id/login_in"
 88         style="@style/common_button_style"
 89         android:layout_margin="10dp"
 90         android:text="@string/login_in" />
 91
 92     <TextView
 93         android:id="@+id/sound_help"
 94         android:layout_width="wrap_content"
 95         android:layout_height="wrap_content"
 96         android:layout_marginLeft="15dip"
 97         android:layout_marginTop="10dip"
 98         android:text="@string/forget_pwd"
 99         android:textColor="#29981A" />
100
101 </LinearLayout>

2016-05-31 14:52:30

时间: 2024-10-13 06:32:59

(一)Android OkHttp 用户登陆demo的相关文章

Android——Login用户登陆的设计实现

我们生活中会遇到各种各样的登录界面,需要输入你的账号和密码,像登陆QQ呀,各种软件都需要这种设计,那我们今天来实现一下吧~~ 首先,界面的设计如下: 可以看出,我们需要两个可编辑文本框,用来输入用户名和密码,同时,我们要提示出要输入的类型,用hint来提示:我们需要一个checkbox来判断我们是否选择保存密码,还需要一个登陆button:由于整个线性布局是垂直的,因此两个可编辑文本框,一个checkbox,一个button在垂直方向上依次排列,这样不是很美观,因此我们需要再建立一个相对布局,使

Android——用户登陆及用户名和密码的保存

Android——用户登陆及用户名和密码的保存 在之前的学习过程中已经将Android学习完了,但是在后面将近一年的时间里都没有进行过Android开发,所以对Android的所有的知识点又有点忘记了,因此才会继续的学习Android,做出这个学习笔记.另外:由于在暑假的时候要开发Android项目,所以对于这些Android知识点也都要熟练的掌握. 目录 一.Android下的Junit测试 二.登陆记录密码界面设计 三.采用rom保存用户数据 一.Android下的Junit测试 在实际开发

android asmack 注册 登陆 聊天 多人聊天室 文件传输

XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的.它继承了在XML环境中灵活的发展性.因此,基于XMPP的应用具有超强的可扩展性.并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍.利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信. 这篇文章有基本的介绍,http://bl

IOS开发之记录用户登陆状态

今天要说的是如何记录我们用户的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一次回话中有效,如果要记录用户的登陆状态,那么会用到一个叫Cookie的东西.Cookie和Session不同,Cookie是存在用户本地的一个文件,Cookie中存的就是用户的登陆信息,当用户在此登陆时,自动从Cookie中

android 学习过程中登陆失效的个人理解

今天在学习的过程中,要做登陆失效的功能,所以就找了些资料,好好看了一下,研究了一番,慢慢的做出来了! 比如:你在一个手机端登陆了账号,在另外的一个手机端也登陆了账号,此时,前一个手机端的账号会提示登陆失效. 意思是只能存在一个账号,这个其实不是很难. 每次登陆的时候会存在一个Token,每次登陆的Token是不一样的! 下面贴一下前端的一些小代码: 在异步网络请求里面判断返回的异常是否是登陆失效: @Override protected void onPostExecute(BusinessRe

Yii 用户登陆机制

Yii 生成应用时已经提供了最基础的用户登陆机制.我们用 Yii 生成一个新的应用,进入 protected/components 目录,我们可以看到 UserIdentity.php 文件,里面的 UserIdentity 类里面只有一个 public 函数如下: public function authenticate() { $users=array( // username => password 'demo'=>'demo', 'admin'=>'admin', ); if(!

Android OkHttp文件上传与下载的进度监听扩展

相信大家对OkHttp也是相当的熟悉了,毕竟是Square的东西,对于其种种优点,这里也不再叙说.优秀是优秀,但是毕竟优秀的东西给我们封装了太多,那么问题来了,我们使用OkHttp作为我们的网络层,简单地进行GET/POST请求是毫无问题.近日看了产品的设计稿,毛估估会有文件的上传与下载的需求,如果使用OkHttp作为网络层进行封装,你会惊讶的发现,简直封装的太"完美"了.如果现在有这么一个需求,要求对文件进行上传或下载,但是在上传或者下载前,你需要给用户一个友好的提示,在上传或者下载

Android OkHttp 文件上传和下载

相信大家对OkHttp也是相当的熟悉了,毕竟是Square的东西,对于其种种优点,这里也不再叙说.优秀是优秀,但是毕竟优秀的东西给我们封装了太多,那么问题来了,我们使用OkHttp作为我们的网络层,简单地进行GET/POST请求是毫无问题.近日看了产品的设计稿,毛估估会有文件的上传与下载的需求,如果使用OkHttp作为网络层进行封装,你会惊讶的发现,简直封装的太"完美"了.如果现在有这么一个需求,要求对文件进行上传或下载,但是在上传或者下载前,你需要给用户一个友好的提示,在上传或者下载

Android OkHttp与物理存储介质缓存:DiskLruCache(2)

 Android OkHttp与物理存储介质缓存:DiskLruCache(2) 本文在附录文章8,9的基础之上,把Android OkHttp与DiskLruCache相结合,综合此两项技术,实现基于OkHttp的物理存储介质缓存DiskLruCache. 用一个完整的例子加以说明.该例子的代码要实现这样的过程:代码启动后,要往一个ImageView里面加载一张网络图片,首先检查DiskLruCache是否已经存在该图片的缓存,如果存在,则直接复用缓存,如果不存在则使用OkHttp把图片异