git clone https://android.googlesource.com/platform/frameworks/volley
android update project -p . ant jar
<dependency> <groupId>com.mcxiaoke.volley</groupId> <artifactId>library</artifactId> <version>1.0.6</version> </dependency>
compile 'com.mcxiaoke.volley:library:1.0.6'
public class AppController extends Application {
public static final String TAG = AppController.class
.getSimpleName();
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private static AppController mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static synchronized AppController getInstance() {
return mInstance;
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
public ImageLoader getImageLoader() {
getRequestQueue();
if (mImageLoader == null) {
mImageLoader = new ImageLoader(this.mRequestQueue,
new LruBitmapCache());
}
return this.mImageLoader;
}
public <T> void addToRequestQueue(Request<T> req, String tag) {
// set the default tag if tag is empty
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
getRequestQueue().add(req);
}
public <T> void addToRequestQueue(Request<T> req) {
req.setTag(TAG);
getRequestQueue().add(req);
}
public void cancelPendingRequests(Object tag) {
if (mRequestQueue != null) {
mRequestQueue.cancelAll(tag);
}
}
}
public class LruBitmapCache extends LruCache<String, Bitmap> implement ImageCache {
public static int getDefaultLruCacheSize() {
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
final int cacheSize = maxMemory / 8;
return cacheSize;
}
public LruBitmapCache() {
this(getDefaultLruCacheSize());
}
public LruBitmapCache(int sizeInKiloBytes) {
super(sizeInKiloBytes);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight() / 1024;
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}
}
private Context mContext;
private RequestQueue mRequestQueue;
private StringRequest mStringRequest;
// 利用Volley实现Post请求
private void volley_post() {
String url = "http://aplesson.com/wap/api/user.php?action=login";
mContext = this;
mRequestQueue = Volley.newRequestQueue(mContext);
mStringRequest = new StringRequest(Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
System.out.println("请求结果:" + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("请求错误:" + error.toString());
}
}) {
// 携带参数
@Override
protected HashMap<String, String> getParams()
throws AuthFailureError {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("un", "852041173");
hashMap.put("pw", "852041173abc");
return hashMap;
}
// Volley请求类提供了一个 getHeaders()的方法,重载这个方法可以自定义HTTP 的头信息。(也可不实现)
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");
headers.put("Content-Type", "application/json; charset=UTF-8");
return headers;
}
};
mRequestQueue.add(mStringRequest);
}
private JsonObjectRequest mJsonObjectRequest;
// 利用Volley实现Json数据请求
private void volley_json() {
mContext = this;
String url = "http://aplesson.com/data/101010100.html";
// 1 创建RequestQueue对象
mRequestQueue = Volley.newRequestQueue(mContext);
// 2 创建JsonObjectRequest对象
mJsonObjectRequest = new JsonObjectRequest(url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println("请求结果:" + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("请求错误:" + error.toString());
}
});
// 3 将JsonObjectRequest添加到RequestQueue
mRequestQueue.add(mJsonObjectRequest);
}
// 利用Volley实现Get请求
private void volley_get() {
mContext = this;
String url = "http://www.aplesson.com/";
// 1 创建RequestQueue对象
mRequestQueue = Volley.newRequestQueue(mContext);
// 2 创建StringRequest对象
mStringRequest = new StringRequest(url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
System.out.println("请求结果:" + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("请求错误:" + error.toString());
}
});
// 3 将StringRequest添加到RequestQueue
mRequestQueue.add(mStringRequest);
}
@Override
public void onStop() {
for (Request <?> req : mRequestQueue) {
req.cancel();
}
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
mRequestQueue.cancelAll(this);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
mRequestQueue.cancelAll( new RequestFilter() {});
or
mRequestQueue.cancelAll(new Object());
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有