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", "數據請求失敗");
}
});
}




}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章