为了账号安全,请及时绑定邮箱和手机立即绑定

Volley--使用Volley请求服务器数据

标签:
Android

private LoginModel loginModel;

private RequestQueue requestQueue;

private StringRequest stringRequest;

// toast 提示

private Toast toast;

// 声明toast

toast = Toast.makeText(LoginActivity.this, "", Toast.LENGTH_SHORT);


// 在类中实例化RequestQueue

requestQueue = Volley.newRequestQueue(LoginActivity.this);

// 建议将RequestQueue 实例化写在你的程序入口 Application 中 

/*

// 在Application中实例化RequestQueue

private static MyApplication myApplication;

 private RequestQueue mRequestQueue;

// **Application中写法** 将实例化写成一个方法

public RequestQueue getRequestQueue() {

 if (mRequestQueue == null) {

 mRequestQueue = Volley.newRequestQueue(getApplicationContext());

 }

 return mRequestQueue;

 }

*/

/////////////////////////////////////  请求方式 post

        stringRequest = new StringRequest(Request.Method.POST, "请求地址", new Response.Listener<String>() {

            @Override

            public void onResponse(String response) {

                // 使用Gosn解析Json数据

                Gson gson = new Gson();

// 将数据存到model实体类中

                loginModel= gson.fromJson(response, LoginModel.class);

// 在model中取出单个数据参数

String user_id = loginModel.getUser_id;

            }

        }, new Response.ErrorListener() {

            @Override

            public void onErrorResponse(VolleyError error) {

                // 请求错误就会进入这里

toast.setText("请求网络失败");// 设置提示文字内容

// 提示出现的位置 CENTER==中心位置  0,0表示是横纵坐标偏移

toast.setGravity(Gravity.CENTER,0,0)

// 显示提示

toast.show;

            }

        }) {

            ////////////////  在这里可以获取Cookie或者是设置Cookie

// 像服务器post提交参数的方法

            @Override

            protected Map<String, String> getParams() {

                // 在这里设置需要post的参数

                HashMap<String, String> map = new HashMap<String, String>();

                map.put("user_name", "");

                map.put("password", "");

                return map;

            }

        };

        requestQueue.add(stringRequest);

////////////////////// 请求方式get

        stringRequest = new StringRequest(Request.Method.GET, "请求地址", new Response.Listener<String>() {

            @Override

            public void onResponse(String response) {

                // 使用Gosn解析Json数据

                Gson gson = new Gson();

// 将数据存到model实体类中

                loginModel= gson.fromJson(response, LoginModel.class);

// 在model中取出单个数据参数

String user_id = loginModel.getUser_id;

            }

        }, new Response.ErrorListener() {

            @Override

            public void onErrorResponse(VolleyError error) {

                // 请求错误就会进入这里

toast.setText("请求网络失败");// 设置提示文字内容

// 提示出现的位置 CENTER==中心位置  0,0表示是横纵坐标偏移

toast.setGravity(Gravity.CENTER,0,0)

// 显示提示

toast.show;

            }

        }) {

            ////////////////  在这里可以获取Cookie或者是设置Cookie

        };

        requestQueue.add(stringRequest);

/////////////////////////////// Volley中获取Cookie的方法

@Override

            protected Response<String> parseNetworkResponse(NetworkResponse response) {

                Response<String> superResponse = super .parseNetworkResponse(response);

                Map<String, String> responseHeaders = response.headers;

                String rawCookies = responseHeaders.get("Set-Cookie");

                Log.i("name", "session的输出=" + rawCookies);

                // 用上一篇博客提到的轻量级存储把获取到的Cookie保存起来在下次设置时直接取

                SharedPreferences saveSharedPreferences = getSharedPreferences("cookie", MODE_PRIVATE);

                SharedPreferences.Editor editor = saveSharedPreferences .edit();

                editor.putString("cookie", rawCookies);

                editor.commit();

                return superResponse;

            }

/////////////////////////////// Volley中设置Cookie的方法

public Map<String, String> getHeaders() throws AuthFailureError { 

 Map<String, String> headers = new HashMap<String, String>(); 

 // 获取保存过的Cookie

my_Cookie SharedPreferences getSharedPreferences = getSharedPreferences ("cookie", MODE_PRIVATE); 

 String my_Cookie = getSharedPreferences.getString("cookie", ""); 

 Log.i("fei_niao", "读取Cookie设置到新的请求:" + my_Cookie); 

 headers.put("Cookie", my_Cookie);

 return headers; 

 }

原文链接:http://www.apkbus.com/blog-722618-72754.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消