012_02 asynchttpClient用户登录

android-async-http是专门针对Android在Apache的HttpClient基础上构建的异步的callback-based http client。

所有的请求全在UI线程之外发生,而callback发生在创建它的线程中,应用了Android的Handler发送消息机制。你也可

以把AsyncHttpClient应用在Service中或者后台线程中,库代码会自动识别出它所运行的context。

使用android-async-http只需要三步:

1. 创建一个AsyncHttpClient;

2. (可选的)通过RequestParams对象设置请求参数;

3. 调用AsyncHttpClient的某个get方法,传递你需要的(成功和失败时)callback接口实现,一般都是匿名内部类

项目的官方网站:http://loopj.com/android-async-http/

对应的github地址:https://github.com/loopj/android-async-http

需要导入的第三方开源包com.loopj.android.http

 1 package com.example.day12_02login;
 2
 3 import java.net.URLEncoder;
 4
 5 import org.apache.http.Header;
 6
 7 import com.loopj.android.http.AsyncHttpClient;
 8 import com.loopj.android.http.AsyncHttpResponseHandler;
 9 import com.loopj.android.http.RequestParams;
10
11 import android.app.Activity;
12 import android.os.Bundle;
13 import android.os.Handler;
14 import android.os.Message;
15 import android.view.View;
16 import android.widget.EditText;
17 import android.widget.Toast;
18
19 public class MainActivity extends Activity {
20
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25     }
26
27     Handler hanlder = new Handler(){
28         @Override
29         public void handleMessage(Message msg) {
30             super.handleMessage(msg);
31             switch (msg.what) {
32             case 1:
33                 Toast.makeText(MainActivity.this, (String)msg.obj, 1).show();
34                 break;
35             case 2:
36                 Toast.makeText(MainActivity.this, (String)msg.obj, 0).show();
37                 break;
38             default:
39                 break;
40             }
41         }
42     };
43
44     class Myhandle extends AsyncHttpResponseHandler{
45         //200 进入
46         @Override
47         public void onSuccess(int statusCode, Header[] headers,
48                 byte[] responseBody) {
49             //这个里面表示链接成功。
50             //应该在这里个去处理成功之后的事情。
51             System.out
52                     .println("MainActivity.login(...).Myhandle.onSuccess()"+statusCode);
53             Toast.makeText(MainActivity.this, new String(responseBody)  , 1).show();
54         }
55         //!200进入
56         @Override
57         public void onFailure(int statusCode, Header[] headers,
58                 byte[] responseBody, Throwable error) {
59         }
60     }
61
62     //Async http client 的get请求
63     public void login(View v){
64         EditText et_username = (EditText) findViewById(R.id.et_uername);
65         EditText et_password = (EditText) findViewById(R.id.et_password);
66
67         final String username= et_username.getText().toString();
68         final String password= et_password.getText().toString();
69         //http://localhost/LoginDemo/servlet/Login?username=wangdao&password=123456
70         String path = "http://192.168.3.30:8080/LoginDemo/servlet/Login?username="+URLEncoder.encode(username)+"&password="+password;
71
72          AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
73          asyncHttpClient.get(path, new Myhandle());
74
75     }
76
77     //Async http client Post 请求实现
78     public void login2(View v){
79
80         EditText et_username = (EditText) findViewById(R.id.et_uername);
81         EditText et_password = (EditText) findViewById(R.id.et_password);
82
83         final String username= et_username.getText().toString();
84         final String password= et_password.getText().toString();
85         //http://localhost/LoginDemo/servlet/Login
86         //发请求的线程
87         String path = "http://192.168.3.30:8080/LoginDemo/servlet/Login";
88          AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
89
90          RequestParams rp= new RequestParams();
91          rp.put("username", username);
92          rp.put("password", password);
93
94          asyncHttpClient.post(path, rp, new Myhandle());
95     }
96
97 }

activity_main.xml和 MyEclipse服务器端代码与 012_01HttpClient用户登录 相同。

时间: 2024-08-06 05:29:11

012_02 asynchttpClient用户登录的相关文章

linux PAM 用户登录认证

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段.从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块. 一.参数与场景 应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁

【mfc】用对话框分页实现用户登录

所谓的对话框分页就是点击完一个对话框的按钮,切换到另一个对话框, 这样的对话框多用于一些需要用户登录才能够进行操作的软件, 下面就用对话框分页来实现用户登录系统 一.基本目标 有如下的程序,输入用户名与密码,如果用户名为admin,密码为123456,那么则成功登录,切换到一个有"欢迎登录"与"关闭"按钮的对话框 如果用户名或者密码输入错误则弹出提示, 点击关闭能够关闭这个程序,不弹出用户登录的对话框. 二.制作过程 1.首先如同之前的<[mfc]对于对话框程

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

C#模拟网站用户登录

我们在写灌水机器人.抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录.那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的. HTTP协议是一个无连接的协议,也就是说这次对话的内容和状态与上次的无关,为了实现和用户的持久交互,网站与浏览器之前在刚建立会话时将在服务 器内存中建立一个Session,该Session标识了该用户(浏览器),每一个Session都有一个唯一的ID,第一次建立会话时服务器将生成的这 个ID传给浏览

JavaWeb用户登录功能的实现

大四快毕业了,3年多的时间中,乱七八糟得学了一大堆,想趁找工作之前把所学的东西整理一遍,所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它. 我贴出此篇博客的目的是,将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以后万一用到的话再拿过来修修改改即可. 有可能用得到的部分:生成验证码的Java类

完成用户登录注册功能

一,需求分析 整体分析框架如下图,需要的包也如下图,它们放在src下 所有的需求如下图所示, 1,我们创建一个名为day12的数据库,其中创建了一个users表 2,在myeclipse中我们新建一个名为day12_user的web项目, 3,在src下我们创建了如下几个java包: com.itheima.damain    实体类包,          其中包括 User类 com.itheima.dao          接口包    ,        其中包括 UserDao接口 com

基于session的用户登录识别

框架express 依赖的session模块express-session 1 主页面app.js var express = require('express'); var path = require('path'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require

PPTP-VPN第二章——使用mysql进行用户登录认证

在上一篇文章中记录了pptp vpn的创建过程和简单实用测试,其中用户名和密码均使用文本数据库/etc/ppp/chap-secrets,小规模用户下,尚可使用这种登陆验证方式,如果用户数多了,则需要将用户登录验证方式修改为查询数据库,在本文中将介绍如何将pptp vpn的用户名和密码认证信息存储在mysql数据库中. 前文传送门:http://ylw6006.blog.51cto.com/470441/1794577 一.安装和配置整合mysql-server和freeradius,和前文一样

[转]Ubuntu默认使用root用户登录并免去输入密码

启用Root用户登录 Ctrl + Alt + T进入终端, 输入cd /usr/share/lightm/ightm.conf.d, 如果提示你没有那个文件或目录.那就一次次的进入目录. 进入之后会看到如图所示的几个文件. 这里写图片描述 输入命令vi 50-unity-greeter.conf添加: greeter-show-manual-login=true allow-guest=false  这时候重启就可以使用Root用户登陆了, 输入用户名root以及root用户的密码敲Enter