zoukankan      html  css  js  c++  java
  • android开发(40) 初试 Volley

    什么是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

    怎么用?

    1. 构建一个“请求队列“RequestQueue
    2. 构建请求Request,支持 StringRequest,JsonRequest,并可以自定义Request
    3. 构建 回调监听器 ,它将在请求处理完成后被调用。
    4. 将请求添加到队列

    演示代码

    简单的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 示例

  • 相关阅读:
    IIS打开本地站点时,无法访问本地json文件的解决办法
    几种流行的前端框架(BootStrap、Layui、Element-UI、Mint UI、Angular、Vue.js、React)
    六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
    SpringBoot框架开发的优秀的项目「值得收藏学习」
    jmeter接口之json提取器应用
    【设计模式(23)】行为型模式之访问者模式
    【设计模式(22)】行为型模式之模板模式
    【设计模式(21)】行为型模式之策略模式
    HTML回忆笔记,给那些忘了但又没完全忘的人准备的
    vscode创建html文件使用"!+tab"不起作用的解决方法
  • 原文地址:https://www.cnblogs.com/vir56k/p/4031741.html
Copyright © 2011-2022 走看看