NoHttp封装--08 用一个实体类接收所有接口数据
1.用户信息获取--bean实体类形式返回数据
①服务器端:
代码:
protected void onHandler(HttpServletRequest request, HttpServletResponse response, PrintWriter printWriter) {
Map<String, Object> map = new HashMap<String, Object>(); try {
String responseS = onResponse(request, response);
map.put("data", responseS);// 字符串、json、url
map.put("error", );// 1的时候代表服务端执行成功
map.put("msg", "OK");
} catch (Exception e) {
map.put("error", "-1");// error是-1的时候代表服务端有问题
map.put("msg", "服务端操作数据库出现异常");
map.put("data", "");
} JSONObject jsonObject = (JSONObject) JSON.toJSON(map);
printWriter.write(jsonObject.toJSONString());
} protected String onResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map<String, String> map = new HashMap();
map.put("userName", "甘传谱");
map.put("password", "");
return JSON.toJSONString(map);
}
json:
{"msg":"OK","data":"{\"password\":\"123456\",\"userName\":\"甘传谱\"}","error":}
②客户端:
代码:
public class UserInfo {
@JSONField(name = "userName")
private String userName; @JSONField(name = "password")
private String password; public UserInfo() {
super();
} public UserInfo(String userName, String password) {
super();
this.userName = userName;
this.password = password;
}
String url = "http://172.16.10.240:8080/noHttpServer/UserInfoServlet";
Request<BaseBean> request = new BaseRequest<BaseBean>(url, BaseBean.class);
request(, request, callBack, false, true); ==============回调========================
BaseBean baseBean = response.get();
if (baseBean.isSuccess()) {
UserInfo content = baseBean.parseData(UserInfo.class);
String s = "用户名:" + content.getUserName() + ";密码:" + content.getPassword();
mTvResult.setText(s);
} else {
mTvResult.setText("业务处理层数据失败");
}
2.书籍信息--list集合形式返回数据
① 服务器端:
代码:
protected void onHandler(HttpServletRequest request, HttpServletResponse response, PrintWriter printWriter) {
Map<String, Object> map = new HashMap<String, Object>(); try {
String responseS = onResponse(request, response);
map.put("data", responseS);// 字符串、json、url
map.put("error", );// 1的时候代表服务端执行成功
map.put("msg", "OK");
} catch (Exception e) {
map.put("error", "-1");// error是-1的时候代表服务端有问题
map.put("msg", "服务端操作数据库出现异常");
map.put("data", "");
} JSONObject jsonObject = (JSONObject) JSON.toJSON(map);
printWriter.write(jsonObject.toJSONString());
} protected String onResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map<String, Object> map = new HashMap();
List<String> books = new ArrayList();
books.add("Java");
books.add("Android");
books.add("iOS");
books.add("C#");
books.add(".NET");
books.add("PHP");
map.put("books", books);
return JSON.toJSONString(map);
}
json:
{"msg":"OK","data":"{\"books\":[\"Java\",\"Android\",\"iOS\",\"C#\",\".NET\",\"PHP\"]}","error":}
②客户端:
代码:
public class BooksInfo { @JSONField(name = "books")
private List<String> list; public BooksInfo() {
super();
} public BooksInfo(List<String> list) {
super();
this.list = list;
}
String url = "http://172.16.10.240:8080/noHttpServer/BookServlet";
Request<BaseBean> request = new BaseRequest<BaseBean>(url, BaseBean.class);
request(, request, callBack, false, true); ==========回调================================== BaseBean baseBean = response.get();
if (baseBean.isSuccess()) {
BooksInfo content = baseBean.parseData(BooksInfo.class);
List<String> list =content.getList(); String s="";
for(int i=;i<list.size();i++){
s+= "书籍名字" +i + ":" + list.get(i)+"\n";
}
mTvResult.setText(s);
} else {
mTvResult.setText("业务处理层数据失败");
}
完整代码:https://github.com/ganchuanpu/StarHttp
NoHttp封装--08 用一个实体类接收所有接口数据的更多相关文章
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...
- OrmLite动态创建表,一个实体类创建多张表的的偏招
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/LonelyRoamer/article/details/26299355 在做一个Android的项 ...
- Mybatis自动生成实体类、dao接口和mapping映射文件
由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到 ...
- XML带多属性解析为一个实体类(利用反射)
最近在对接一个银行的项目,大概就是类似一个钱包的功能,在请求返回的数据时,发现返回的数据标准的XML格式的支付串,格式如下 <kColl id="inputOrig" app ...
- 前端传数据到后台,后台用实体类接收不到引发的思考----Java bean中字段命名潜规则
1.按照Java语法规范,通常在实体类中的属性,首字母都是小写的.这是由于JavaBean的规范导致的.一般JavaBean属性都是首字母小写,以驼峰命名格式命名,相应的 getter/setter ...
- mybatis向数据库插入数据 (传入的是一个实体类)
/** * 插入用户信息 user为实体类 * @param user */ public int insert( User user); //实体类不用@param标注 //mybatis的xml文 ...
- 利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
1. mybatis-generator-core-1.3.5.jar 下载地址:https://github.com/mybatis/generator/releases 2. msyql-conn ...
- 使用generatorConfig工具自动生成mybatis的实体类以及dao接口和映射文件
1:数据准备 创建一个数据库表 CREATE TABLE `logininfo` ( `id` ) NOT NULL AUTO_INCREMENT, `username` ) DEFAULT NULL ...
- hibernate多表查询,结果封装在自己定义的一个实体类当中(在自己定义的类中增加构造函数)
hibernate的hql查询直接返回java对象时出现问题3 向大家请教一个问题,现在有三张表,表之间没有关联,我需要将三张表里面的所有东西查询出来存储到一个新的对象中,该如何实现,使用hibern ...
随机推荐
- ssh免密码快速登录配置
使用ssh登录服务器的时候,需要输入ip地址.端口.用户名.密码等信息,比较麻烦,容易输错.还好,通过客户端和服务器的配置参数,可实现免密码快速登录.服务器可通过保存客户端的公钥,用于验证客户端的身份 ...
- vue属性监听
1.watch:用来监听每一个属性的变化 2.watch这个对象里面都是函数,函数的名称是data中的属性名称,watch中的函数不需要调用 3.当属性发生改变那么就会触发watch函数,每个函数都会 ...
- 容器、容器集群管理平台与 Kubernetes 技术漫谈
原文:https://www.kubernetes.org.cn/4786.html 我们为什么使用容器? 我们为什么使用虚拟机(云主机)? 为什么使用物理机? 这一系列的问题并没有一个统一的标准答案 ...
- Apache Pulsar简介
Apache Pulsar What is Pulsar "Pulsar is a distributed pub-sub messaging platform with a very fl ...
- java与json,一篇就够了
本示例使用的json包为阿里的fastjson 首先写三个工具类(seter和geter方法省略,自行补上): /** * 屏幕实体类 */ public class Screen { private ...
- 为什么阿里巴巴禁止开发人员使用isSuccess作为变量名
答曰,是为了防止用加了is前缀命名的变量造成序列化与反序列不一致的问题
- Python数据可视化的四种简易方法
摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...
- 基本排序算法Golang
摘要 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 冒泡排序 func BubbleSort(ve ...
- Perl基础速成
本文是针对没有Perl基础,但想用perl一行式命令取代grep/awk/sed的人,用于速学Perl基础知识. Perl一行式系列文章:Perl一行式程序 perl的-e选项 perl命令的-e选项 ...
- QT 完美实现圆形按钮
QT 版本:5.6.0 官方的按钮有些普通,如果我们想要换成自己喜欢的按钮而却无从下手,那么请继续往下阅读(皮一下). 首先,可以在网络上搜索一下自己喜欢的按钮图形(或者可以自行绘制),我以下面的图形 ...