Volley的常用方法总结

一、准备工作
1.1 AS下面导入Volley.jar
获取volley.jar的路径:volley.jar下载地址
将volley粘贴到libs下
volley导入工程步骤
右键选择 Add to Library.
然后就可以运用volley了。
1.2 在AndroidManifest.xml文件下添加网络访问权限

    <uses-permission android:name="android.permission.INTERNET" />

二、JsonRequest请求服务器端
在开发中,经常会用到JSON来传输数据,Volley提供了两种请求分别来实现Json的请求和返回,分别是JsonObjectRequest和JsonArrayRequest.这两个类分别是JsonRequst的实现类。
jsonRequest请求,提交的是json字符串,返回的也是对象的json数据。因此服务器端,在接收请求数据时候,也需要相应解析json数据。
1.1 JsonObjectRequest请求数据。
—|客户端请求代码:

/**
     * 通过userid访问服务器,获取用户的信息
     * @param userid
     * @return
     */
    private void getUserNetWork(String userid){
        String url = URLAddress.getURLPath("SelectUserSer");
        Map<String,String> map = new HashMap<>();
        map.put("userid",userid);
        JSONObject obj = new JSONObject(map);
        VolleyUtil.sendJsonObjectRequest(this, url, obj, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                try {
                    if(jsonObject!=null){  //获取数据,并封装成User对象
                        User u = new User();
                        u.setUserName(jsonObject.getString("userid"));
                        u.setName(jsonObject.getString("name"));
                        u.setClassGrade(jsonObject.getString("classGrade"));
                        Message msg = new Message();
                        msg.obj = u;
                        msg.what = userInfo;
                        mHandler.sendMessage(msg);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                ToastUtil.toast(MainActivity.this,"网络访问异常");
            }
        });
    }
}

—|服务器端对象Servlet接收解析:
主要是通过
String userid = IOUtils.toString(request.getInputStream())
获取json格式的String类型数据。然后进行json解析。

package qb.android.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;
import org.json.JSONObject;

import qb.entity.User;
import qb.service.UserService;
/**
 * Android端接口
 * 通过用户id获取用户的信息
 * @author admin
 *
 */
public class SelectUserSer extends SuperServlet {
    private UserService us;
    @Override
    public void init() throws ServletException {
        super.init();
        us = new UserService();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        super.doPost(request, response);
        String userid = IOUtils.toString(request.getInputStream(),"utf-8");
        JSONObject jo = new JSONObject(userid);
        User user =us.selectById(jo.getString("userid"));
        //将user对象解析成JsonObject对象
        out.print(parseToJsonObject(user));
    }
    private String parseToJsonObject(User u){
        JSONObject jo = new JSONObject();
        jo.put("userid", u.getUserid());  //学号
        jo.put("name", u.getUsername());
        jo.put("classGrade", u.getUserclass());
        return jo.toString();
    }
}

1.2 JsonArrayRequest访问服务器
JsonArrayRequest访问服务器需要返回JsonArray的数据。需要用集合来接收。

 private void getTestPaper(int pageNum){
        String url = URLAddress.getURLPath("SelectAllTestPaperSer");
        VolleyUtil.sendJsonArrayRequest(this, url, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray jsonArray) {
                Log.i(TAG,"访问成功"+jsonArray);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Log.i(TAG,"访问失败"+volleyError.toString());
            }
        });
    }

以上代码是我已经将volley再次封装,然后直接调用的结果。这里主要是想说明,volley提交数据,用到的两个jsonRequest请求的操作过程。
后面会将这些源码放到github中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值