Android网络请求框架:Volley代码
来源:互联网 发布:java多线程编程实战 编辑:程序博客网 时间:2024/05/20 10:56
- 创建RequestQueue
RequestQueue queue=Volley.newRequestQueue(this);
/* * GET方式请求字符串 * */ private void getString(String url){ //2.创建StringRequst对象 StringRequest stringRequest=new StringRequest(url,listener,errorListener); //3.将StringRequest对象添加到请求队列中 queue.add(stringRequest); } /* * 请求成功回调 * */ Response.Listener listener=new Response.Listener<String>(){ @Override public void onResponse(String s){ Log.d("TAG","onResponse: "+s); } }; /* * 请求失败回调 * */ Response.ErrorListener errorListener=new Response.ErrorListener(){ @Override public void onErrorResponse(VolleyError volleyError){ Log.d("TAG","onErrorResponse: "+volleyError.getMessage()); } };
/* * POST方式请求字符串数据 * */ private void postString(String url){ StringRequest request=new StringRequest(Request.Method.POST,url,listener,errorListener){ //重写getParams()方法,传参 @Override protected Map<String,String> getParams() throws AuthFailureError{ HashMap<String,String> map=new HashMap<>(); map.put("username","xxx"); map.put("password","xxx"); return map; } }; queue.add(request); }
/* * 请求Json数据 * json对象:JsonObjectRequest * json数组:JsonArrayRequest * */ private void getJson(String url){ //请求Json对象 JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(url,null,new Response .Listener<JSONObject>(){ @Override public void onResponse(JSONObject jsonObject){ //获取到返回的JSONObject数据 } },new Response.ErrorListener(){ @Override public void onErrorResponse(VolleyError volleyError){ } }); queue.add(jsonObjectRequest); //请求json数组 JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(url,new Response .Listener<JSONArray>(){ @Override public void onResponse(JSONArray jsonArray){ //获取到返回的JSONArray数据 } },new Response.ErrorListener(){ @Override public void onErrorResponse(VolleyError volleyError){ } }); queue.add(jsonArrayRequest); }
/* * 获取图片方式一:ImageRequest * */ private void imageReuest(String url){ /* * String url, 图片地址 * Listener<Bitmap> listener, 请求成功回调 * int maxWidth, 图片宽度,设置为0则显示原图宽度 * int maxHeight, 图片高度,设置为0则显示原图高度 * ScaleType scaleType, 缩放模式 * Config decodeConfig, 图片颜色属性 * ErrorListener errorListener,请求失败回调 * */ ImageRequest imageRequest=new ImageRequest(url,new Response.Listener<Bitmap>(){ @Override public void onResponse(Bitmap bitmap){ //获取到Bitmap } },0,0,ImageView.ScaleType.CENTER_CROP,Bitmap.Config.ARGB_4444,new Response.ErrorListener(){ @Override public void onErrorResponse(VolleyError volleyError){ } }); queue.add(imageRequest); }
/* * 获取图片方式二:ImageLoader * 1.获取RequestQueue * 2.获取ImageLoader * 3.获取ImageListener * 4.调用ImageLoader的get方法,获取并显示图片 * */ private void imageLoader(String url){ ImageView imgView=null; //获取ImageLoader对象:不使用缓存 ImageLoader imageLoader=new ImageLoader(queue,new ImageLoader.ImageCache(){ @Override public Bitmap getBitmap(String s){ return null; } @Override public void putBitmap(String s,Bitmap bitmap){ } }); //获取ImageLoader对象:使用缓存 //ImageLoader imageLoader=new ImageLoader(queue,new BitmapCache()); //获取ImageListener ImageLoader.ImageListener imageListener=ImageLoader.getImageListener(// imgView,//用于显示图片的ImageView控件 R.mipmap.ic_launcher,//加载图片的过程中显示的图片 R.mipmap.ic_launcher);//加载失败显示的图片 //获取并显示图片 imageLoader.get(url,imageListener,0,0,ImageView.ScaleType.CENTER_CROP); } /* * 自定义类实现ImageCache,使用图片缓存 * */ public class BitmapCache implements ImageLoader.ImageCache{ private LruCache<String,Bitmap> mCache; public BitmapCache(){ int maxSize=10*1024*1024; mCache=new LruCache<String,Bitmap>(maxSize){ @Override protected int sizeOf(String key,Bitmap bitmap){ return bitmap.getRowBytes()*bitmap.getHeight(); } }; } @Override public Bitmap getBitmap(String url){ return mCache.get(url); } @Override public void putBitmap(String url,Bitmap bitmap){ mCache.put(url,bitmap); } }
/* * 获取图片方式三:NetworkImageView控件 * 1. 创建一个RequestQueue对象。 * 2. 创建一个ImageLoader对象。 * 3. 在布局文件中添加一个NetworkImageView控件。 * 4. 在代码中获取该控件的实例。 * 5. 设置要加载的图片地址。 * * */ private void networkImageView(String url){ ImageLoader imageLoader=new ImageLoader(queue,new BitmapCache()); NetworkImageView networkImageView=(NetworkImageView)findViewById(R.id.networkImgView); //setImageUrl networkImageView.setImageUrl(url,imageLoader); }
/** * 自定义XMLRequest(仿照StringRequest) */public class XMLRequest extends Request<XmlPullParser>{ private final Response.Listener<XmlPullParser> listener; public XMLRequest(int method,String url,Response.Listener<XmlPullParser> listener,Response.ErrorListener errorListener){ super(method,url,errorListener); this.listener=listener; } public XMLRequest(String url, Response.Listener<XmlPullParser> listener, Response.ErrorListener errorListener) { this(0, url, listener, errorListener); } @Override protected Response<XmlPullParser> parseNetworkResponse(NetworkResponse networkResponse){ String xmlString; try{ //获取到XML数据 xmlString = new String(networkResponse.data, HttpHeaderParser.parseCharset(networkResponse.headers)); //创建XML解析器,并设置数据源为以上获取到的XML数据 XmlPullParserFactory xmlPullParserFactory=XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser=xmlPullParserFactory.newPullParser(); xmlPullParser.setInput(new StringReader(xmlString)); return Response.success(xmlPullParser, HttpHeaderParser.parseCacheHeaders(networkResponse)); }catch(UnsupportedEncodingException e){ e.printStackTrace(); return Response.error(new ParseError(e)); }catch(XmlPullParserException e){ e.printStackTrace(); return Response.error(new ParseError(e)); } } @Override protected void deliverResponse(XmlPullParser xmlPullParser){ this.listener.onResponse(xmlPullParser); }}
0 0
- Android网络请求框架:Volley代码
- Android网络请求框架 Volley
- Android网络请求框架Volley
- Android网络请求框架Volley
- Android Volley网络请求框架
- Android网络请求框架-----Volley
- Android网络请求框架Volley的使用
- Android Volley 网络请求框架图
- Android主流网络请求框架Volley
- Android网络请求框架:Volley简单使用
- Android 异步网络请求框架-Volley
- Android —— 网络请求框架 Volley
- android网络请求Volley框架的使用
- Android 主流网络请求框架 Volley
- Volley框架实现Android网络请求笔记
- Android网络请求框架Volley【转债】
- Android网络请求框架Volley学习
- Android 网络请求框架Volley学习笔记
- 电子地图问题汇总
- GIT分支管理
- zzuli-OJ-小明的疑惑(数论)
- css-属性选择器
- Android 抽屉式布局之利用DrawerLayout实现
- Android网络请求框架:Volley代码
- HDU1495-非常可乐
- 微信开发config:invalid signature
- onHiddenChanged
- Java 环境变量配置 Windows
- POCO C++库学习和分析 -- 日志 (一)
- 虚拟机安装后TP框架验证码失效
- spring学习之路2
- 作为新手,关于APP启动时出现空白页才跳到启动页,解决办法如下