资讯专栏INFORMATION COLUMN

NoHttp封装--08 用一个实体类接收所有接口数据

JackJiang / 2771人阅读

摘要:用户信息获取实体类形式返回数据服务器端代码字符串的时候代表服务端执行成功是的时候代表服务端有问题服务端操作数据库出现异常甘传谱甘传谱客户端代码回调用户名密码业务处理层数据失败书籍信息集合形式返回数据服务器端代码字符串的时候代表服

1.用户信息获取--bean实体类形式返回数据 ①服务器端:

代码:

 1 protected void onHandler(HttpServletRequest request, HttpServletResponse response, PrintWriter printWriter) {
 2         Map map = new HashMap();
 3 
 4         try {
 5             String responseS = onResponse(request, response);
 6             map.put("data", responseS);// 字符串、json、url
 7             map.put("error", 1);// 1的时候代表服务端执行成功
 8             map.put("msg", "OK");
 9         } catch (Exception e) {
10             map.put("error", "-1");// error是-1的时候代表服务端有问题
11             map.put("msg", "服务端操作数据库出现异常");
12             map.put("data", "");
13         }
14 
15         JSONObject jsonObject = (JSONObject) JSON.toJSON(map);
16         printWriter.write(jsonObject.toJSONString());
17     }
18 
19     protected String onResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
20         Map map = new HashMap();
21         map.put("userName", "甘传谱");
22         map.put("password", "123456");
23         return JSON.toJSONString(map);
24     }

json:

{"msg":"OK","data":"{"password":"123456","userName":"甘传谱"}","error":1}

②客户端:

代码:

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 request = new BaseRequest(url, BaseBean.class);
request(0, 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集合形式返回数据 ① 服务器端:

代码:

 1 protected void onHandler(HttpServletRequest request, HttpServletResponse response, PrintWriter printWriter) {
 2     Map map = new HashMap();
 3 
 4     try {
 5         String responseS = onResponse(request, response);
 6         map.put("data", responseS);// 字符串、json、url
 7         map.put("error", 1);// 1的时候代表服务端执行成功
 8         map.put("msg", "OK");
 9     } catch (Exception e) {
10         map.put("error", "-1");// error是-1的时候代表服务端有问题
11         map.put("msg", "服务端操作数据库出现异常");
12         map.put("data", "");
13     }
14 
15     JSONObject jsonObject = (JSONObject) JSON.toJSON(map);
16     printWriter.write(jsonObject.toJSONString());
17 }
18 
19 protected String onResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
20     Map map = new HashMap();
21     List books = new ArrayList();
22     books.add("Java");
23     books.add("Android");
24     books.add("iOS");
25     books.add("C#");
26     books.add(".NET");
27     books.add("PHP");
28     map.put("books", books);
29     return JSON.toJSONString(map);
30 }

json:

{"msg":"OK","data":"{"books":["Java","Android","iOS","C#",".NET","PHP"]}","error":1}

②客户端:

代码:

public class BooksInfo {

    @JSONField(name = "books")
    private List list;

    public BooksInfo() {
        super();
    }

    public BooksInfo(List list) {
        super();
        this.list = list;
    }

String url = "http://172.16.10.240:8080/noHttpServer/BookServlet";
Request request = new BaseRequest(url, BaseBean.class);
request(1, request, callBack, false, true);        

==========回调==================================

BaseBean baseBean = response.get();
if (baseBean.isSuccess()) {
    BooksInfo content = baseBean.parseData(BooksInfo.class);
    List list =content.getList();

    String s="";
    for(int i=0;i

 

完整代码:https://github.com/ganchuanpu/StarHttp

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3065.html

相关文章

  • NoHttp封装--02 自定义请求

    摘要:实体类请求针对的具体在中使用处理登录结果登录接口结果处理登出结果退出接口结果请求失败可以解析所有的自定义请求但是前提是传进来的必须提供了默认实现bean实体类请求: 1.bean 1 import java.io.Serializable; 2 import com.alibaba.fastjson.annotation.JSONField; 3 4 public class U...

    TigerChain 评论0 收藏0
  • NoHttp封装--01

    摘要:登陆退出处理登录结果登录接口数据处理登出结果退出接口数据请求失败添加一个请求到请求队列上下文请求对象接受回调结果,当多个请求用同一个接受结果时,用来区分请求是否显示请求是否能被用户取消是否提示用户错误信息客户端错误客户端发生错误服务器错误服NoHttpActivity 1 public class NoHttpActivity extends Activity implements Vi...

    KnewOne 评论0 收藏0
  • NoHttp封装--04 缓存

    摘要:请求,缓存非标准协议,改变缓存模式为请求图片,缓存图片仅仅请求网络无论如何也只会请求网络,也不支持这种默认行为。仅仅读取缓存无论如何仅仅读取缓存,不会请求网络和其它操作。 1、Default模式,也是没有设置缓存模式时的默认模式 这个模式实现http协议中的内容,比如响应码是304时,当然还会结合E-Tag和LastModify等头。 StringRequest request = ne...

    Kerr1Gan 评论0 收藏0
  • NoHttp封装--03 cookie

    摘要:请求自动维持支持临时的位置。支持重启关机开机后继续持久化维持。提供了接口,允许开发者监听的变化,也可以改变某个的值。服务器端登录成功登录失败客户端登录按钮成功了成功时拿到头这里就拿到了你想那的失败了文章NoHttp请求自动维持Cookie:   1.支持Session、Cookie、临时Cookie的位置。   2.支持App重启、关机开机后继续持久化维持。   3.提供了接口,允许开发者监...

    susheng 评论0 收藏0
  • NoHttp封装--05 文件下载

    摘要:下载下载按钮暂停开始等下载状态下载进度条下载地址下载请求下载地址保存的文件夹文件名是否断点续传下载如果发现文件已经存在是否删除后重新下载检查已经下载了一半的文件是什么状态文件已经下载完成下载完成已经下载完成提示用户安装代表文件不存在,需要从xml java: 1 import com.yolanda.nohttp.Headers; 2 ...

    IamDLY 评论0 收藏0

发表评论

0条评论

JackJiang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<