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 ...
随机推荐
- mysql 导入 CSV文件命令行 ERROR 13 (HY000): Can't get stat of
一定要查看好CSV字段结构是否和文件的表结构字段一致 load data local infile 'F:/MySqlData/test1.csv' --CSV文件存放路径 into table st ...
- 微服务架构下分布式事务解决方案——阿里GTS
1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...
- C#版 - LeetCode 148. Sort List 解题报告(归并排序小结)
leetcode 148. Sort List 提交网址: https://leetcode.com/problems/sort-list/ Total Accepted: 68702 Total ...
- poj1001
#include <iostream> #include<iomanip> #include<cstring> using namespace std; int s ...
- vue-13-swiper组件的使用
vue-13-swiper 是一个滑动库, 非常丰富的滑动样式, 轮播图等 https://www.swiper.com.cn https://github.com/surmon-china/vue- ...
- PHP实现螺旋矩阵(螺旋数组)
今天碰到一个比较有意思的问题, 就是把A到Y这25个字母以下面的形式输出出来 A B C D E P Q R S F O X Y T G N W V U H M L K J I 问题很有意思,就是转圈 ...
- Java设计模式之《模板模式》及使用场景
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9558825.html 模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框 ...
- sed修炼系列(二):sed武功心法(info sed翻译+注解)
sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中 ...
- Spring Cloud Config采用Git存储时两种常用的配置策略
由于Spring Cloud Config默认采用了Git存储,相信很多团队在使用Spring Cloud的配置中心时也会采用这样的策略.即便大家都使用了Git存储,可能还有各种不同的配置方式,本文就 ...
- python中的模块和包
模块 一 什么是模块 模块就是一组功能的集合体,可以通过导入模块来复用模块的功能. 比如我在同一个文件夹定义两个.py文件,分别命名为A.py和B.py,那么可以通过在A文件里通过import B来使 ...