使用google的開源框架Volley,功能一:網絡請求Json數據

1.首先到我的百度雲http://pan.baidu.com/s/1skZyUeD ,下載volley.jar,放到你的項目lib目錄下

2.然後開始寫代碼

package com.example.myvolley;

import org.json.JSONObject;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		getJson();
	}

	// 獲取Json字符串
	public void getJson() {
		//1.知道有Volley的存在,調用它的靜態方法,一個新的請求隊列
		RequestQueue queue = Volley.newRequestQueue(this);
		
		String jsonObjectUrl = "http://apis.juhe.cn/goodbook/catalog?dtype=&key=9fd903bc9a46e6c9519ae377f7ee288c";
		
		//3.因爲要JSONObject集合,就new JsonObjectRequest
		//得到這個集合,
		//int method(請求方式), String url(Json數據請求地址), JSONObject jsonRequest(null即可),
		//Listener<JSONObject> listener(事件監聽,就是拿到響應數據), ErrorListener errorListener(如果錯誤,就響應這個監聽)
		//有下面這5個參數
		JsonObjectRequest objectRequest = new JsonObjectRequest(
				Request.Method.GET, jsonObjectUrl, null,
				new Response.Listener<JSONObject>() {
					@Override
					public void onResponse(JSONObject response) {
						//這裏也可以Log.i.....,但習慣syso了
						System.out.println("response :  " + response);
					}
				}, new Response.ErrorListener() {
					@Override
					public void onErrorResponse(VolleyError arg0) {
						System.out.println("------------------網絡錯誤------------------");
					}
				});
		//2.把你的請求添加進來,它要一個Request<JSONObject> arg0,就給它這個參數即可
		queue.add(objectRequest);
	}
}


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