Volley简单访问网络数据

来源:互联网 发布:虚荣 知乎 编辑:程序博客网 时间:2024/05/16 15:09
/** * Volley 使用步骤 首先要导入Volley的jar包 * ①建立一个全局的请求队列并实例化--通过自定义Application ,自定义的Application要在配置文件中配置name属性 * ②创建请求对象根据返回的网络数据格式选择   *  】StringRequest、ImageRequest、JsonArrayRequest、JsonObjectRequest... * ③ 将请求对象添加到请求队列 *  *】    可以通过给请求对象设置 tag 然后在请求队里中取消网络请求  *      如果当前Activity跳转,就可以在onStop()方法中取消网络的请求            】 *       *      request.setTag("aaa"); *      MyApplication.getReqeQueueInstance().cancelAll("aaa"); *       * @author Administrator * */public class MainActivity extends Activity {    //JSON数据    private String path="http://appapi.very-news.com/moreNews.m?pull_type=down&channel=entertainment&sort_time=0&version_name=1.2.1&start_count=1&udid=E6BA61777016BE968AEFEA9FB9A065EB&uid=";    //图片地址    private String imgUrl="http://e.hiphotos.bdimg.com/album/whcrop%3D590%2C331%3Bq%3D90/sign=b5167fe76f061d957d13617a148437e4/500fd9f9d72a6059393ae7c52934349b023bbac2.jpg";    private TextView tv;    private ImageView img;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv=(TextView)findViewById(R.id.tv);        img=(ImageView)findViewById(R.id.img);        //get请求方式下载JSON数据//      getDataByGet();        //post请求方式下载JSON数据//      getDataByPost();        //下载图片        getBitmap();    }    /**     * 下载图片     * 参数1:图片地址     * 参数2:下载成功的回调接口     * 参数3:下载的图片宽度:0表示保持原图宽度     * 参数4:下载的图片高度:0表示保持原图高度     * 参数5:图片质量     * 参数6:下载失败的回调接口     *      */    private void getBitmap() {        ImageRequest request=new ImageRequest(imgUrl,                 new Response.Listener<Bitmap>() {                    @Override                    public void onResponse(Bitmap arg0) {                        //将下载下来的图片添加到ImageView中                        img.setImageBitmap(arg0);                    }                }, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError arg0) {                        //下载失败,给一个默认的图片                        img.setImageResource(R.drawable.ic_launcher);                    }                });        MyApplication.getReqeQueueInstance().add(request);    }    /**     * post请求方式,需要重写getParams方法(通过Map向网络传参数),注意重写方式     */    private void getDataByPost() {        StringRequest request=new StringRequest                (Method.POST, path, new Response.Listener<String>() {                    //arg0: 返回的数据                    @Override                    public void onResponse(String arg0) {                        tv.setText(arg0);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError arg0) {                    }                })            {            @Override            protected Map<String, String> getParams() throws AuthFailureError {                Map<String,String> m=new HashMap<String, String>();                m.put("", "");                return m;            }        };        MyApplication.getReqeQueueInstance().add(request);    }    /**     * Get请求方式     */    private void getDataByGet() {        /**         * 参数1:请求方式         * 参数2:访问地址         * 参数3:访问成功调用的接口         * 参数4:访问失败调用的接口         */        StringRequest request=new StringRequest                (Method.GET, path, new Response.Listener<String>() {                    //arg0: 返回的数据                    @Override                    public void onResponse(String arg0) {                        tv.setText(arg0);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError arg0) {                    }                });                //讲请求对象添加到请求队列中            MyApplication.getReqeQueueInstance().add(request);    }}

public class MyApplication extends Application{

private static RequestQueue rq;@Overridepublic void onCreate() {    // TODO 自动生成的方法存根    super.onCreate();    rq=Volley.newRequestQueue(getApplicationContext());}public static RequestQueue getReqeQueueInstance(){    return rq;}

}
“`

0 0
原创粉丝点击