標籤:android style blog http color io os ar 使用
什麼是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
怎麼用?
- 構建一個“請求隊列“RequestQueue
- 構建請求Request,支援 StringRequest,JsonRequest,並可以自訂Request
- 構建 回調監聽器 ,它將在請求處理完成後被調用。
- 將請求添加到隊列
示範代碼
簡單的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(); } };}
使用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 樣本
android開發(40) 初試 Volley - GoogleI02013上的“快速,簡單的網路通訊庫”