zoukankan      html  css  js  c++  java
  • Android基础_web通信3

    在Android基础_web通信2中,我运用的JSONObject是Android原生的json类,通过import org.json.JSONObject来导入。

    还有另外一种更简单的方法,就是用Gson解析

    一.导入Gson包

    复制你需要添加的jar,并将其黏贴到app— —src— —main— —libs文件夹下,可运行的AndroidStudio项目都有像这样的目录结构。可以看到虽然jar已经复制黏贴过来了,但是还未导入,所以看不到jar中包含的内容。而已导入的jar,则可以看到jar中内容。

    不清楚怎么导入的可以百度搜索一下。

    二.代码

    在web端操作数据的代码

    //根据Id查询单个用户
        protected void doFindUserById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out=response.getWriter();
            //取出ID
            int id=Integer.parseInt(request.getParameter("uno"));
            for (Users users : userList) {
                if(users.getUno()==id){
                    out.println(new Gson().toJson(users));
                    return;
                }
            }
            out.close();
        }
    //查询所有用户
        protected void doFindUserList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out=response.getWriter();
            //将所有用户以JSON格式响应到客户端
            out.println(new Gson().toJson(userList));
            out.close();        
        }

    移动客服端操作数据的代码

    //查询单个用户
        public void test_1(View view){
            try {
                URL url=new URL("http://192.168.3.222:8080/Web_Project2/UserServlet?method=userById&uno=1");
                HttpUtils.doGet(url, new CallBack() {
                    @Override
                    public void success(String str) {
                        Log.i("User Info","------success-----");
                        TbUsers users=new Gson().fromJson(str,TbUsers.class);
                        Log.i("User Info",users.getUname()+","+users.getUpwd());
                    }
                    @Override
                    public void failed(String str) {
                        Log.i("Error Message",str);
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    //查询所有用户
        public void test_2(View view){
            try {
                URL url=new URL("http://192.168.3.222:8080/Web_Project2/UserServlet?method=userList");
                HttpUtils.doGet(url, new CallBack() {
                    @Override
                    public void success(String str) {
                        List<TbUsers> userList=new Gson().fromJson(str,new TypeToken<List<TbUsers>>(){}.getType());
                        for(TbUsers u:userList){
                            Log.i("User Info:",u.getUname()+","+u.getUpwd());
                        }
                    }
                    @Override
                    public void failed(String str) {
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    工具类和Android基础_web通信2中一样。这里不粘贴代码了。

  • 相关阅读:
    RN-Android构建失败:Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'AwesomeProject'.
    Android更新包下载成功后不出现安装界面
    真机调试: The application could not be installed: INSTALL_FAILED_TEST_ONLY
    react native 屏幕尺寸转换
    Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
    React Native安卓真机调试
    git提交代码报错Permission denied, please try again
    The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
    命令行设置快捷命令
    Linux 常用指令
  • 原文地址:https://www.cnblogs.com/Crezy/p/8125692.html
Copyright © 2011-2022 走看看