Android之Volley两种使用方法

Volley网络框架

1.Volley网络请求队列

Volley请求都是基于请求队列的,开发者只要把请求放在请求队列中就可以了,请求队列会依次进行,一般情况下,一个应用程序如果网络请求不是特别频繁
完全可以只有一个请求队列。

2.StringRequest:接收String类型的返回值

点击登录按钮实现登录功能。
 private void InitView() {
        username=findViewById(R.id.usenrame);
        password=findViewById(R.id.password);
        button=findViewById(R.id.login);
        mQueue=Volley.newRequestQueue(getApplicationContext());
    }

    public void Login(View view) {
        final String UserName=username.getText().toString();
        final String PassWord=password.getText().toString();

        StringRequest request=new StringRequest(Request.Method.POST, Url + "LoginServlet", new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                if(s.equals("success")){
                    Message message=new Message();
                    message.what=0x11;
                    handler.sendMessage(message);
                }else{
                    Message message=new Message();
                    message.what=0x12;
                    handler.sendMessage(message);
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {

            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                HashMap<String,String> map=new HashMap<>();
                map.put("UserName",UserName);
                map.put("PassWord",PassWord);
                return map;
            }
        };
        mQueue.add(request);
    }

3.JsonObjectRequest()的使用方法

 public void Login(View view) {
        String UserName=username.getText().toString();
        String PassWord=password.getText().toString();
        HashMap<String,String> map=new HashMap<>();
        map.put("UserName",UserName);
        map.put("PassWord",PassWord);
        JSONObject json=new JSONObject(map);
        JsonObjectRequest request=new JsonObjectRequest(Request.Method.POST,Url + "LoginServlet", json, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                try {
                    String res=jsonObject.getString("res");
                    System.out.println(res);
                    if(res.equals("success")){
                        Message message=new Message();
                        message.what=0x11;
                        handler.sendMessage(message);
                    }else{
                        Message message=new Message();
                        message.what=0x12;
                        handler.sendMessage(message);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                    volleyError.printStackTrace();
            }
        }){

            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                return super.getParams();
            }
        };
        mQueue.add(request);
    }
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what){
                case 0x11:
                    Toast.makeText(getApplicationContext(),"登录成功" ,Toast.LENGTH_LONG ).show();
                    break;
                case 0x12:
                    Toast.makeText(getApplicationContext(),"登录失败" ,Toast.LENGTH_LONG ).show();
                    break;
            }
        }
    };
    

这里主要是使用post提交数据,get方法提交数据比较麻烦容易出错。
发布了123 篇原创文章 · 获赞 74 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43927892/article/details/101631999