Android-async-http 的用法

1.Android-async-http的Get和Post请求的使用

 1 /*
 2  * 1.Android-async-http的Get和Post请求的使用
 3  */
 4 public class MainActivity extends ActionBarActivity {
 5
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_main);
10         // asynchttpGet();
11         asynchttpPost();
12     }
13
14     // --------------------Post()方式请求网络---------------------------------------------
15     private void asynchttpPost() {
16
17         String url = "http://apis.juhe.cn/mobile/get?";
18         AsyncHttpClient client = new AsyncHttpClient();
19         RequestParams params = new RequestParams();
20         params.put("phone", "13666666666");
21         params.put("key", "335adcc4e891ba4e4be6d7534fd54c5d");
22         client.post(url, params, new AsyncHttpResponseHandler() {
23             @Override
24             public void onSuccess(String content) {
25                 // TODO Auto-generated method stub
26                 super.onSuccess(content);
27                 Toast.makeText(MainActivity.this, content, 1).show();
28             }
29
30             @Override
31             public void onFailure(Throwable error) {
32                 // TODO Auto-generated method stub
33                 super.onFailure(error);
34                 Toast.makeText(MainActivity.this, "请求失败", 1).show();
35             }
36
37         });
38
39     }
40
41     // --------------------Get()方式请求网络---------------------------------------------
42     private void asynchttpGet() {
43         AsyncHttpClient client = new AsyncHttpClient();
44         String url = "http://apis.juhe.cn/mobile/get?phone=13666666666&key=335adcc4e891ba4e4be6d7534fd54c5d";
45         client.get(url, new AsyncHttpResponseHandler() {
46
47             @Override
48             public void onSuccess(String content) {
49                 // TODO Auto-generated method stub
50                 super.onSuccess(content);
51                 Toast.makeText(MainActivity.this, content, 1).show();
52             }
53
54             @Override
55             public void onFailure(Throwable error) {
56                 // TODO Auto-generated method stub
57                 super.onFailure(error);
58                 Toast.makeText(MainActivity.this, "请求失败", 1).show();
59             }
60         });
61
62     }
63
64 }

2.Android-async-http回调逻辑的二次封装

 1 public class RequestUtils {
 2
 3     public static AsyncHttpClient client=new AsyncHttpClient();
 4     public static void ClientGet(String url, NetCallBack cb) {
 5         client.get( url,  cb);
 6     }
 7
 8
 9     public static void ClientPost(String url, RequestParams params,NetCallBack cb) {
10         client.post(url,params, cb);
11     }
12 }
 1 public abstract class NetCallBack extends AsyncHttpResponseHandler {
 2     @Override
 3     public void onStart() {
 4         // TODO Auto-generated method stub
 5         super.onStart();
 6
 7         System.out.println("--->>请求开始,弹出进度条");
 8     }
 9
10     @Override
11     public void onSuccess(String content) {
12         // TODO Auto-generated method stub
13         super.onSuccess(content);
14         onMySuccess(content);
15         System.out.println("--->>请求Success,隐藏进度条" + content);
16     }
17
18     @Override
19     public void onFailure(Throwable error) {
20         // TODO Auto-generated method stub
21         super.onFailure(error);
22         onMyFailure(error);
23         System.out.println("--->>Failure");
24     }
25
26     public abstract void onMySuccess(String result);
27
28     public abstract void onMyFailure(Throwable error);
29 }
 1 /*
 2  *
 3  * 2.Android-async-http回调逻辑的二次封装
 4  *
 5  *
 6  * */
 7 public class MainActivity extends ActionBarActivity {
 8
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity_main);
13         //asynchttpGet();
14         asynchttpPost();
15     }
16     // --------------------Post()方式请求网络---------------------------------------------
17     private void asynchttpPost() {
18
19         String url = "http://apis.juhe.cn/mobile/get?";
20
21         RequestParams params=new RequestParams();
22         params.put("phone", "13666666666");
23         params.put("key", "335adcc4e891ba4e4be6d7534fd54c5d");
24         RequestUtils.ClientPost(url, params,new NetCallBack() {
25
26             @Override
27             public void onMySuccess(String result) {
28                 // TODO Auto-generated method stub
29                 Toast.makeText(MainActivity.this, result, 1).show();
30             }
31
32             @Override
33             public void onMyFailure(Throwable error) {
34                 // TODO Auto-generated method stub
35                 Toast.makeText(MainActivity.this,"请求失败", 1).show();
36             }
37         });
38
39
40
41     }
时间: 2024-10-12 21:00:41

Android-async-http 的用法的相关文章

Android中this的用法

关于Android中this的用法解释 问题由来 由于很多同学在学习Android时候没有对Java有很深的了解,很多人都会对代码中各种各样的this产生疑惑. 以<第一行代码Android>P37页,P43页代码为例: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); Button but

【android】Socket简单用法

原文地址:http://www.cnblogs.com/harrisonpc/archive/2011/03/31/2001565.html Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示.值得一提的是,Java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端.这是两个封装得非常好的类,使用起来很方便! 下面将首先创建一个SocketServer的类作为服务端如下,该服务端实现

【Android】Android背景选择器selector用法汇总

一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 默认时的背景图片--> <item android:drawable="@draw

关于Android 中 raw的用法以及与assets 的的区别和共同点

一.raw与assets的区别及共同点 (1) res/raw和assets的相同点 两个目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. (2) res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.raw.filename: assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类. 2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是a

Android中的ContentValues用法

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象.ContentValues存储对象的时候,以(key,value)的形式来存储数据. 在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以: ContentValues initial = new ContentValues(); init

Android listview与adapter用法

listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常简单. 一个ListView的创建需要3个元素. (1)ListView中的每一列的View. (2)填入View的数据或者图片等. (3)连接数据与ListView的适配器. 也就是说,要使用ListView,首先要了解什么是适配器

Android中Toast的用法简介

转自:http://www.cnblogs.com/GnagWang/archive/2010/11/26/1888762.html Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失.下面用一个实例来看看如何使用Toast. 1.默认效果 代码 Toast.makeText(getApplicationContext(), "默认Toast样式",     Toast.LEN

Android中pm命令用法(转)

usage: pm [list|path|install|uninstall] pm list packages [-f] pm list permission-groups pm list permissions [-g] [-f] [-d] [-u] [GROUP] pm list instrumentation [-f] [TARGET-PACKAGE] pm path PACKAGE pm install [-l] [-r] PATH pm uninstall [-k] PACKAGE

Android Fragment和FragmentActivity用法

Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用Fragment的话,框架Activity需要继承FragmentActivity,FragmentActivity这个类是在android.support.v4.app.FragmentActivity里的. 下面介绍2种用法: 1.继承Activity的. (这个只针对4.0以上的Android

Android 中 LayoutParams 的用法

一个控件应当使用它的父控件的 LayoutParams 类型.因此,一个 TableVow 应该使用 TableLayout.Params . 所以,以一个 TableRow 为例: TableRow tableRow = new TableRow(context); tableRow.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutPar