什么是Volley
Google I/O 2013上,Volley發布了。Volley是Android平臺上的網絡通信庫,能使網絡通信更快,更簡單,更健壯。
這是Volley名稱的由來: a burst or emission of many things or a large amount at once
特點
支持JSON,圖片,二進制文本,內存和磁盤緩存,強力的自定義能力,debug和跟蹤工具
如何獲得?
我在 云盤 放了編譯好的 http://yunpan.cn/cg7S8awftBsmp 訪問密碼 b1bf
怎么用?
1.構建一個“請求隊列“RequestQueue
2.構建請求Request,支持 StringRequest,JsonRequest,并可以自定義Request
3.構建 回調監聽器 ,它將在請求處理完成后被調用。
4.將請求添加到隊列
演示代碼
HTTP GET 演示:
public class SimpleGetActivity extends Activity {
RequestQueue mRequestQueue;
TextView txt_msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_get);
txt_msg = (TextView) findViewById(R.id.txt_msg);
mRequestQueue = Volley.newRequestQueue(this);
}
public void btn1OnClick(View v) {
String url = "http://www.baidu.com";
StringRequest req = new StringRequest(Method.GET, url,
responseListener, mErrorListener);
mRequestQueue.add(req);
}
Listener<String> responseListener =new Listener<String>() {
@Override
public void onResponse(String str1) {
txt_msg.setText(str1);
}
};
ErrorListener mErrorListener = new ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
}
};
}
HTTP POST方式發送參數
public class ParasPostActivity extends Activity {
RequestQueue mRequestQueue;
TextView txt_msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_paras_post);
txt_msg = (TextView) findViewById(R.id.txt_msg);
mRequestQueue = Volley.newRequestQueue(this);
}
public void btn1OnClick(View v) {
String url = Constants.URL_FOR_DEMO1;
StringRequest req = new StringRequest(Method.POST, url,
responseListener, mErrorListener){
@Override
protected Map<String, String> getParams()
throws AuthFailureError {
return new ApiParams().with("key1", "v1").with("key2", "v2");
}
};
mRequestQueue.add(req);
}
Listener<String> responseListener =new Listener<String>() {
@Override
public void onResponse(String str1) {
txt_msg.setText(str1);
}
};
ErrorListener mErrorListener = new ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
}
};
}
注意傳參時,是通過匿名類實現的,重載了getParams 方法
參考:
http://blog.csdn.net/t12x3456/article/details/9221611
me.storm.volley 示例