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 ...
随机推荐
- muduo-ThreadLocal实现细节——阻止销毁未定义对象
muduo利用pthread_key_t实现ThreadLocal模板类. 具体代码如下所示: template<typename T> class ThreadLocal : nonco ...
- 【翻译】JavaScript内存泄露
原文地址:http://javascript.info/tutorial/memory-leaks#tools 我们在进行JavaScript开发时,很少会考虑内存的管理.JavaScript中变量的 ...
- Jenkins系列之四——设置邮件通知
Jenkins持续集成,当我们自动打包部署完,我们可以发送一封邮件给相关的负责人.现介绍一下如何在Jenkins中配置实现邮件通知. 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的 ...
- ①小姐,来桶全家桶不?(Servlet)
一.前言 小生不才,大二下半学期第二个星期,近11月博客园.星期六闲来看看经典书.重温下Serlvet. 二.温故而知新:超文本转移协议HTTP HTTP协议是通过互联网(internet)或企业内部 ...
- 正则表达式的一些探索(偏JavaScript)
简单的探索下正则表达式的相关知识,首先先了解下正则表达式的引擎和匹配过程区别,再试着掌握如何在场景中编写正则表达式,再然后探索下根据上文已知的原理和编写过程怎么去优化正则表达式,最后给出一些js里正则 ...
- final,finally,finalize有什么区别?String, StringBuffer, StringBuilder有什么区别?Exception和Error有什么区别?
继上篇JVM学习之后,后面将分三期深入介绍剩余JAVA基础面试题,每期3题. 题目一.final,finally,finalize有什么区别? /*请尊重作者劳动成果,转载请标明原文链接:*/ /* ...
- SpringBoot 常用注解
@SpringBootApplication 这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置. @Ena ...
- spring jdbcTemplate 事务,各种诡异,包你醍醐灌顶!
前言 项目框架主要是spring,持久层框架没有用mybtis,用的是spring 的jdbc: 业务需求:给应用添加领域(一个领域包含多个应用,一个应用可能属于多个领域,一般而言一个应用只属于一个领 ...
- Python中的序列操作
官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-range 序列简介 序列是指按照位置 ...
- Python系列:三、流程控制循环语句--技术流ken
Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...