当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 使用OkHttp获取本地服务器目录下的json数据并解析为Bean对象

使用OkHttp获取本地服务器目录下的json数据并解析为Bean对象

2020年07月27日  | 移动技术网IT编程  | 我要评论

如题所示,只是一个单机版的的简单示例。android程序获取apache服务器内的json 数据。

一、 准备工作。

在apache服务器的C:\Tomcat 9.0\webapps\ROOT下准备一个简单的json文件,如图所示。并开启服务。
在这里插入图片描述

二、创建androidStudio工程

1.修改布局。布局很简单,只有一个按钮和一个textview,点击按钮时获取服务器的json数据,用textview显示json数据。如图所示。
在这里插入图片描述
2.添加OkHttp依赖文件。
在这里插入图片描述在这里插入图片描述

三,获取json数据

通过点击按钮获取服务器中的数据,用到了okhttp框架。其中,path为json的地址,如果本机的地址为:192.168.1.9,则path=“http://192.168.1.9:8080/fast.json”

  @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_get:
                OkHttpClient okHttp=new OkHttpClient();
                Request request=new Request.Builder().url(path).build();
                Call call=okHttp.newCall(request);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {    }
                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        String str=response.body().string();
                        Message msg=new Message();
                        msg.what=0;
                        msg.obj=str;
                        mhandler.sendMessage(msg);
                    }
                });
                break;
        }
    }

四.在界面中显示数据

在主线程中,handler处理message并显示在textview或者用Gson解析成Bean对象。

  mhandler=new Handler(){
            @Override
            public void dispatchMessage(@NonNull Message msg) {
                super.dispatchMessage(msg);
                switch (msg.what){
                    case 0:
                        if (msg.obj!=null){
                            textView.setText((String)msg.obj);//直接显示json数据
                            parseJsonDate((String)msg.obj);//解析成Bean对象
                        }
                        break;
                }
            }
        };

五、使用Gson解析json

添加Gson依赖,

 private void parseJsonDate(String obj) {
        Gson gson=new Gson();
        InfoBean infoBean=gson.fromJson(obj,InfoBean.class);
        textView.setText(infoBean.toString());
    }

本文地址:https://blog.csdn.net/m0_47761892/article/details/107583466

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网