android在service中使用AsyncHttpClient加载网络资源

简介:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package  com.example.service;
import  org.apache.http.Header;
import  org.json.JSONObject;
 
 
 
 
 
 
import  com.loopj.android.http.AsyncHttpClient;
 
import  com.loopj.android.http.JsonHttpResponseHandler;
import  com.loopj.android.http.RequestParams;
 
import  android.annotation.SuppressLint;
import  android.app.Service;
import  android.content.Intent;
import  android.content.ServiceConnection;
import  android.os.Binder;
import  android.os.IBinder;
 
import  android.widget.Toast;
 
 
public  class  GetDateService  extends  Service{
     /*
      * 请求队列*/
 
     private  MyBind myBind= new  MyBind();
     
     @Override
     public  void  onCreate() {
         // TODO Auto-generated method stub
         super .onCreate();
         
         
         System.out.println( "TestService oncreate()" );
     }
     @SuppressLint ( "NewApi" )
     @Override
     public  int  onStartCommand(Intent intent,  int  flags,  int  startId) {
         // TODO Auto-generated method stub
         getDate( "http://www.lewei50.com/api/V1/Gateway/GetSensors/01" );
         return  super .onStartCommand(intent, flags, startId);
     }
     @Override
     public  void  onDestroy() {
         // TODO Auto-generated method stub
         super .onDestroy();
         
         System.out.println( "TestService desory()" );
     }
     @Override
     public  IBinder onBind(Intent intent) {
         // TODO Auto-generated method stub
         return  myBind;
     }
     @Override
     public  void  unbindService(ServiceConnection conn) {
         // TODO Auto-generated method stub
         System.out.println( "Test UnbindService()" );
         super .unbindService(conn);
     }
     
     public  class  MyBind  extends  Binder{
         public  void  test(){
             System.out.println( "test" );
         }
         public  GetDateService getDateService(){
             return  GetDateService. this ;
         }
     }
     public  void  getDate(String url){
         AsyncHttpClient client =  new  AsyncHttpClient();
          RequestParams params =  new  RequestParams();
             // 设置请求的参数名和参数值
          params.put( "userKey" "cc809cd707xxxxxa917xxxxxxc674d0" );
         client.get(url,params,  new  JsonHttpResponseHandler() {
             @Override
             public  void  onStart() {
                 // called before request is started
                 
             }
 
             @Override
             public  void  onSuccess( int  statusCode, Header[] headers,JSONObject response) {
                 // TODO Auto-generated method stub
                 super .onSuccess(statusCode, headers, response);
                 Toast.makeText(GetDateService. this , response.toString(), Toast.LENGTH_SHORT).show();
             }
             @Override
             public  void  onFailure( int  arg0, Header[] headers,  byte [] arg2,
                     Throwable arg3) {
                 // TODO Auto-generated method stub
                 super .onFailure(arg0, headers, arg2, arg3);
                 Toast.makeText(GetDateService. this , arg3.toString(), Toast.LENGTH_SHORT).show();
                 
             }
             @Override
             public  void  onRetry() {
                 // TODO Auto-generated method stub
                 super .onRetry();
             }
         });
         
         System.out.println(url);
     
     
         
     }
     
     
     
}

public void getDate(String url){
        AsyncHttpClient client = new AsyncHttpClient();
         RequestParams params = new RequestParams();
            // 设置请求的参数名和参数值
         params.put("userKey", "cc809cd707cexxxxx9176xxxxxc674d0");
        client.get(url,params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                // called before request is started
                
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers,JSONObject response) {
                // TODO Auto-generated method stub
                super.onSuccess(statusCode, headers, response);
                Toast.makeText(GetDateService.this, response.toString(), Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFailure(int arg0, Header[] headers, byte[] arg2,
                    Throwable arg3) {
                // TODO Auto-generated method stub
                super.onFailure(arg0, headers, arg2, arg3);
                Toast.makeText(GetDateService.this, arg3.toString(), Toast.LENGTH_SHORT).show();
                
            }
            @Override
            public void onRetry() {
                // TODO Auto-generated method stub
                super.onRetry();
            }
        });
       
    }

参数格式是String类型,得到的数据格式是json格式



 本文转自 matengbing 51CTO博客,原文链接:http://blog.51cto.com/matengbing/1909711


相关文章
|
1月前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
3月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
38 0
|
3月前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
22 0
|
1天前
|
Android开发
Android Mediatek NVRAM 加载 MAC 地址并禁用 MAC 地址更新
Android Mediatek NVRAM 加载 MAC 地址并禁用 MAC 地址更新
6 0
|
8天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
9 0
|
8天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
8 0
|
2月前
|
分布式计算 DataWorks NoSQL
MaxCompute资源问题之网络不通如何解决
DataWorks数据集是指在阿里云DataWorks平台内创建、管理的数据集合;本合集将介绍DataWorks数据集的创建和使用方法,以及常见的配置问题和解决方法。
34 2
|
2月前
|
数据可视化 Android开发
[Android 四大组件] --- Service
[Android 四大组件] --- Service
24 0
|
3月前
|
JSON Java Android开发
Android网络和数据交互: 请解释Android中的JSON解析库,如Gson。
Android网络和数据交互: 请解释Android中的JSON解析库,如Gson。
24 0
|
4月前
|
XML JSON Android开发
[Android]网络框架之Retrofit(kotlin)
[Android]网络框架之Retrofit(kotlin)
55 0