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 用一个实体类接收所有接口数据的更多相关文章

  1. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...

  2. OrmLite动态创建表,一个实体类创建多张表的的偏招

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/LonelyRoamer/article/details/26299355 在做一个Android的项 ...

  3. Mybatis自动生成实体类、dao接口和mapping映射文件

    由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到 ...

  4. XML带多属性解析为一个实体类(利用反射)

    最近在对接一个银行的项目,大概就是类似一个钱包的功能,在请求返回的数据时,发现返回的数据标准的XML格式的支付串,格式如下 <kColl id="inputOrig" app ...

  5. 前端传数据到后台,后台用实体类接收不到引发的思考----Java bean中字段命名潜规则

    1.按照Java语法规范,通常在实体类中的属性,首字母都是小写的.这是由于JavaBean的规范导致的.一般JavaBean属性都是首字母小写,以驼峰命名格式命名,相应的 getter/setter ...

  6. mybatis向数据库插入数据 (传入的是一个实体类)

    /** * 插入用户信息 user为实体类 * @param user */ public int insert( User user); //实体类不用@param标注 //mybatis的xml文 ...

  7. 利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件

    1. mybatis-generator-core-1.3.5.jar 下载地址:https://github.com/mybatis/generator/releases 2. msyql-conn ...

  8. 使用generatorConfig工具自动生成mybatis的实体类以及dao接口和映射文件

    1:数据准备 创建一个数据库表 CREATE TABLE `logininfo` ( `id` ) NOT NULL AUTO_INCREMENT, `username` ) DEFAULT NULL ...

  9. hibernate多表查询,结果封装在自己定义的一个实体类当中(在自己定义的类中增加构造函数)

    hibernate的hql查询直接返回java对象时出现问题3 向大家请教一个问题,现在有三张表,表之间没有关联,我需要将三张表里面的所有东西查询出来存储到一个新的对象中,该如何实现,使用hibern ...

随机推荐

  1. 关于mysql的update、delete、和insert into能否使用别名问题

    在工作中遇到这样一个问题,就是mysql在insert into时能不能使用别名,大家会很奇怪为什么insert into使用别名呢?原因在于原来的项目中使用了user表,新项目要将user表拆分为u ...

  2. NuGet 构建服务器与常用命令

    公司出于某些原因需要自己在内部网络搭建一个私有的 Nuget 服务器,而且要运行在 Linux服务器上面.如果说 Windows 下搭建的话很简单,直接在项目当中引入 Nuget 的库就 OK,这儿的 ...

  3. Struts标签<bean:write><logic:iterate></logic:equal>的组合使用小例

    form表单中的一个下拉列表控件的代码如下 <select name="taskname" id="taskname" class="selec ...

  4. Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

    Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www ...

  5. Future、Callable 、FutureTask详解

    1.Future和Callable Future是一个接口表示异步计算的结果,它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果.Future提供了get().cancel().isC ...

  6. 一些不常用但又很有用的css小tips

    1.box-sizing:border-box box-sizing有三个属性:content-box(默认值) || border-box || inhreit.第一个自然不用说,比如我们设置一个d ...

  7. 【EF6学习笔记】(一)Code First 方式生成数据库及初始化数据库实际操作

    本篇参考原文地址: Creating an Entity Framework Data Model 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整 ...

  8. 【EF6学习笔记】(十一)实施继承

    上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里,继承可以很好的重用代码.在本章就对Instructor和Student两个类进 ...

  9. 01 Windows安装Tensorflow

    1.安装Python. 点击此处下载Python3.5.2.安装Python时一定要选择安装pip. 2.配置Python环境变量. 将%安装路径%\Scripts添加到Path下面. 3.修改Pip ...

  10. 记一次安装Ipython的流程

    这是一个悲伤的安装ipython的过程. 写下来留个教训吧. 也是希望对博友一些帮助吧. 注: 我也写了一篇window下安装bpython的文章(个人感觉bpython要比ipython强大的多), ...