AsyncHttpClient的get基本用法

做项目时,用到了网络知识,现在我使用AsyncHttpClient写了一个网络demo,在这里记录一些,对他的一些基础使用


首先,AsyncHttpClient是封装好的网络类,使用起来非常方便,该类可以实现大部分的网络功能,

      AsyncHttpClient的jar包可以从网上下载,有很多,

     使用方法:1.实例化一个AsyncHttpClient类,AsyncHttpClient clint=new AsyncHttpClient();

                           clint实例中有很多方法,比如设置网络超时,clint.setTimeOut();

                          2.向服务器发送请求,clint.get(url,AsyncHttpResponseHandler),不带任何数据向服务器发出请求

                              要注意的是,AsyncHttpResponseHandler接口,发送请求的过程是看不到的(因为被分装在jar包中),但是,服务器返回的数据是可以看见的,并且可以对数据进行各种处理,主要就是AsyncHttpResponseHandler中的方法

onStart()//发送请求时调用

onSuccess()//服务器成功返回数据时调用

onFailure()//服务器发送失败应答,或网络有异常

onFinish()//最后肯定会调用的

运行窗口

public class MainActivity extends Activity {

private URL url;
private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button)findViewById(R.id.btn);
      btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Request.get("http://api.wallstreetcn.com:80/v2/posts/specials");

}
});
        
    }


网络处理reques.java

public class Request {
private static List<SpecialEntity> list=new ArrayList<SpecialEntity>();

private static AsyncHttpClient mClient=new AsyncHttpClient();
static{
mClient.setTimeout(20000);
}
public static void post(String url,AsyncHttpResponseHandler hander){



}
public static void get(String url){

mClient.get(url, new AsyncHttpResponseHandler() {


@Override
public void onFinish() {
// TODO Auto-generated method stub
super.onFinish();
}


@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d("onStart()","==="+"开始从网上获取数据");
}


@Override
public void onSuccess(int arg0, Header[] head, byte[] content) {
// TODO Auto-generated method stub
Log.d("onSuccess()", "===成功请求导数据");
String response = null;
JSONObject jsonObject=null;
JSONArray jsonArray=null;
Gson gson=new Gson();
try {
response=new String(content, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
 
jsonObject=new JSONObject(response);
jsonArray=jsonObject.getJSONArray("results");
String result=jsonObject.getString("results");
list =gson.fromJson(result, new TypeToken<List<SpecialEntity>>(){}.getType());
Log.d("onSuccess", ""+list.size());

 
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}


@Override
public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
// TODO Auto-generated method stub
Log.d("onFailure", "数据请求失败");
}
});
}




}



AsyncHttpClient和OkHttp都是常用的第三方网络组件,用于实现Android应用中的网络请求。它们的用法类似,下面分别介绍一下。 AsyncHttpClient使用步骤: 1. 添加依赖库: ```gradle implementation 'com.loopj.android:android-async-http:1.4.10' ``` 2. 在需要使用的地方创建AsyncHttpClient对象: ```java AsyncHttpClient client = new AsyncHttpClient(); ``` 3. 设置请求参数,发起网络请求: ```java client.get(url, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { // 请求成功的处理逻辑 } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { // 请求失败的处理逻辑 } }); ``` 其中,url是请求的地址,AsyncHttpResponseHandler用于处理请求结果。 OkHttp使用步骤: 1. 添加依赖库: ```gradle implementation 'com.squareup.okhttp3:okhttp:3.12.1' ``` 2. 在需要使用的地方创建OkHttpClient对象: ```java OkHttpClient client = new OkHttpClient(); ``` 3. 构造请求对象,发起网络请求: ```java Request request = new Request.Builder() .url(url) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { // 请求失败的处理逻辑 } @Override public void onResponse(Call call, Response response) throws IOException { // 请求成功的处理逻辑 } }); ``` 其中,url是请求的地址,Callback用于处理请求结果。 以上是AsyncHttpClient和OkHttp的基本用法,具体还可根据需求进行更复杂的操作,例如设置请求头、请求体等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值