JAR——android-async-http-1.4.5

简介:
  1. http框架:实现异步访问网络;

  2. 使用方法:

(1)创建HttpUtil

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
public  class  HttpUtil {
 
     private  static  AsyncHttpClient client =  new  AsyncHttpClient();  // 实例话对象
     
     static  {
         client.setTimeout( 11000 );  // 设置链接超时,如果不设置,默认为10s
     }
 
     /**
      * url不带参数返回String
      * @param urlString url
      * @param res 处理handler
      */
     public  static  void  get(String urlString, AsyncHttpResponseHandler res){ 
 
         client.get(urlString, res);
     }
 
     /**
      * url带参数返回String
      * @param urlString url
      * @param params url中的参数
      * @param res 处理handler
      */
     public  static  void  get(String urlString, RequestParams params,AsyncHttpResponseHandler res){  // url里面带参数
     
         client.get(urlString, params, res);
     }
 
     /**
      * 不带参数返回json
      * @param urlString url 
      * @param res 处理handler
      */
     public  static  void  get(String urlString, JsonHttpResponseHandler res){  // 不带参数,获取json对象或者数组
     
         client.get(urlString, res);
     }
 
     /**
      * 带参数,返回json
      * @param urlString url
      * @param params url参数
      * @param res 处理handler
      */
     public  static  void  get(String urlString, RequestParams params,JsonHttpResponseHandler res){  // 带参数,获取json对象或者数组
     
         client.get(urlString, params, res);
         
     }
 
     /**
      * 不带参数,返回byte数据
      * @param uString url
      * @param bHandler 处理handler
      */
     public  static  void  get(String uString, BinaryHttpResponseHandler bHandler){  // 下载数据使用,会返回byte数据
     
         client.get(uString, bHandler);
     }
     
     /**
      * 带参数的post 请求c#
      * @param url
      * @param params
      * @param responseHandler
      */
     public  static  void  post(Context context,String url,HttpEntity entity, ResponseHandlerInterface responseHandler){
         
         client.post(context, url, entity,  "application/json" , responseHandler); //关键是设置content-type = "application/json"
     }
 
     public  static  AsyncHttpClient getClient() {
         return  client;
     }
     
     
 
}

(2)在Activity中使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//url获取
String url = getString(R.string.url);
             //初始化网络请求参数
             RequestParams params =  new  RequestParams();
             params.put(username, username);
             params.put(password, password);
             //网络请求,处理返回数据
             HttpUtil.get(MyConsts.URL_LOGIN, params,  new  JsonHttpResponseHandler(){
                 //网络请求成功
                 public  void  onSuccess( int  statusCode, Header[] headers,
                         JSONObject response) {
                                         
                     //成功获取网络数据,在这里处理网络返回的数据
                 }
                 //服务器请求失败
                 public  void  onFailure( int  statusCode, Header[] headers,
                         String responseString, Throwable throwable) {                                     //访网络失败
                 
                 }
                 //请求结束,不管成功与否都调用该方法
                 public  void  onFinish() {
                     
                                         //无论成功与否都会执行该方法
                     
                 }
             });
 
             
             
             
//使用post请求c#服务
String username = et_RegisterUsername.getText().toString();
         String password = et_RegisterPasswd.getText().toString();
         String realname = et_RegisterTruename.getText().toString();
 
         if  (Valid.valid(username) && Valid.stringIsEmail(username)
                 && Valid.valid(password) && Valid.valid(realname)) {
 
                         //将参数按照键值对的形式添加到一个json对象中,因为与c#交互需要传递一个json串
             JSONObject json =  new  JSONObject();
             try  {
                 json.put(usernameP, username);
                 json.put(passwordP, password);
                 json.put(realNameP, realname);
                 json.put(originP, origin);
 
                 StringEntity entity =  new  StringEntity(json.toString());
 
                 HttpUtil.post(LoginActivity. this , url, entity,
                         new  JsonHttpResponseHandler() {
                             public  void  onFinish() {
                                 cancelProgressDialog();
                             }
 
                             public  void  onFailure( int  statusCode,
                                     Header[] headers, String responseString,
                                     Throwable throwable) {
                         
                                 Log.d( "failure:" , responseString);
                             }
                             
                             public  void  onSuccess( int  statusCode,
                                     Header[] headers, JSONObject response) {
                                 
                             }
                         });
             catch  (JSONException e) {
                 e.printStackTrace();
             catch  (UnsupportedEncodingException e) {
                 e.printStackTrace();
             }
         }

特别注意:onFinish方法在onSucess()和onFailure()方法执行之前执行;

















本文转自wauoen51CTO博客,原文链接:http://blog.51cto.com/7183397/1606631 ,如需转载请自行联系原作者



相关文章
|
7月前
|
Java Android开发
|
4月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
103 0
|
4月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
308 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
7月前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
268 1
|
7月前
|
Java Android开发
Android编译的jar里面是dex
Android编译的jar里面是dex
80 0
|
7月前
|
Java Android开发
Android module 打包成aar或jar
Android module 打包成aar或jar
267 0
|
7月前
|
Java Android开发
Android Studio的使用导入第三方Jar包
Android Studio的使用导入第三方Jar包
48 1
|
7月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
1532 1
|
7月前
|
Android开发
Android 开发 读取excel文件 jxl.jar包
Android 开发 读取excel文件 jxl.jar包
72 0
|
Java Android开发
Android Studio使用外部jar包
Android Studio使用外部jar包
145 0