从服务器上获取api接口数据 生成实体类并显示在listview或TextView中
来源:互联网 发布:数据库培训中心 编辑:程序博客网 时间:2024/05/16 05:47
从服务器上获取api接口数据 生成实体类并显示在listview或TextView中
第一次写博客。。。。见识短浅。有什么错误的地方只能等以后知识学多了回来改正。
我先晒个成果图哈
第一步 下载软件
首先去下载postman和JsonCSharpClassGenerator这两个软件,如果你经常要从服务器上获取数据的话,那么这两个软件你值得拥有!这里我贴上百度云代码
postman:http://pan.baidu.com/s/1hsrHvG4 JsonCSharpClassGenerator :http://pan.baidu.com/s/1gf5W4qJ
第二步 使用软件
那么怎么用它们呢。
我先推荐两个能免费获取api的网站:1.聚合数据:https://www.juhe.cn/ 这个网站普通用户只能申请一个api
2.阿凡达数据:http://www.avatardata.cn/这个网站普通用户可以申请多个api 但是每天使用次数会被限制 我就用这个作为例子。
你可以申请数据 我申请了号码吉凶
点击接口 可以查看接口地址和请求参数。
接下来 你就要用到postman
将请求示例那段地址复制粘贴到postman中并点击send按钮
可以看到返回的json结果 接下来就要用到JsonCSharpClassGenerator 安装包下载完双击解压缩里面的应用程序
将刚刚postman中得到的json结果复制粘贴到JsonCSharpClassGenerator左下方的白色方框中,System选择android,Target folder是指待会生成的实体类存放的位置,我选择了桌面的新建文件夹,然后点击Load按钮。
再点击Generate按钮就在桌面的新建文件夹中生成了MainClass和Result两个实体类。
那么实体类显示出来了 到底怎么用呢
接下来你需要在项目中新建两个类 然后把刚刚生成的类里面的内容复制进去,至于为什么不直接把两个类复制进项目中,是因为我这样做过 但是运行的时候出现什么字符错误 然后目前我还没解决 但是把两个类类名里的内容复制到新建类中就不会出现这个问题。
这些工作完成后下面要解决的是怎么把获得到的内容显示在你想要显示的控件上。
首先写一个方法用来处理服务器返回的数据,把它封装成实体类,其中Number.class就是刚刚生产的MainClass.class,这个方法要求返回Number对象,。
public static Number handleNumberResponse(String response){ try { JSONObject jsonObject=new JSONObject(response); return new Gson().fromJson(jsonObject.toString(),Number.class); }catch (Exception e){e.printStackTrace();} return null; }
下面就要从服务器申请数据你申请的key并显示在textview中。
private void queryFromServer(String keyword){ String address="http://v1.avatardata.cn/JiXiong/LookUp";//接口地址 HttpUrl.Builder urlBuilder=HttpUrl.parse(address).newBuilder(); urlBuilder.addQueryParameter("keyword",keyword); urlBuilder.addQueryParameter("key","你申请的key"); Util.sendOkHttpRequest(urlBuilder.build().toString(), new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); Toast.makeText(getActivity(), "测试失败", Toast.LENGTH_SHORT).show(); } @Override public void onResponse(Call call, Response response) throws IOException { final String responseText=response.body().string(); Log.e("返回结果:",responseText); final Number n=Utility.handleNumberResponse(responseText);//调用刚刚的handleNumberResponse方法解析服务器返回的数据包装成实体类 getActivity().runOnUiThread(new Runnable() { @Override public void run() { linearLayout.setVisibility(View.VISIBLE); numberText.setText("号码:"+editNumber.getText()); numberContent.setText(n.getResult().getShuli()+"("+n.getResult().getYunshi()+")"+"\n" +"含义:"+n.getResult().getHanyi()+"\n"+"简述:"+n.getResult().getJianshu()+"\n"+"基业:"+ n.getResult().getJiye()+"\n"+"家庭:"+n.getResult().getJiating()+"\n"+"健康:"+n.getResult().getJiankang() +"\n"+"详解:"+n.getResult().getXiangjie()); } }); } }); }
阅读全文
1 0
- 从服务器上获取api接口数据 生成实体类并显示在listview或TextView中
- 获取服务器json数据并解析显示listview上
- 从http服务器获取图片并显示在视图上
- 模拟新闻客户端从服务器获取xml数据并显示到ListView
- 在ListView中绑定并显示数据
- 从extenionplugin的C++ 模块中读取数据并显示到Qt的ListView上
- 从网络获取数据,并绑定到listview上
- 从另一个qml文件中读取数据并显示在ListView中
- 从另一个qml文件中读取数据并显示在ListView中
- 获取服务器数据通过Gson解析显示Listview上
- 从网络读取数据并动态的显示在ListView中
- 从网络读取数据并动态的显示在ListView中
- 再论百度Echarts技术,如何从后台获取数据并显示在页面上
- json数据解析并显示在listView上
- 前端如何从服务器获取数据并显示
- 从数据库中拿数据,显示到listview上
- ContentResolver实现获取手机联系人并显示在ListView中
- 获取assets数据显示于TextView上
- React Native工作小技巧及填坑记录
- nyoj 214 单调递增子序列(二) lower_bound
- 多进程编程
- Monkey and Banana (最长子序列)
- C++ Primer 读书笔记——表达式
- 从服务器上获取api接口数据 生成实体类并显示在listview或TextView中
- 相对路径 './' 和 '../' 的区别?
- 抽象工厂模式
- angularjs数组判断是否含有某个元素
- Maven快速查找jar包的pom结构详解
- SQL Server 批量插入数据的两种方法
- 最近项目用到Dubbo框架,临时抱佛脚探讨一下
- optparse模块OptionParser学习
- 嵌入式Uboot,通过tftp进行内核镜像的加载及flash写入