1. 程式人生 > >NoHttp封裝--08 用一個實體類接收所有接口數據

NoHttp封裝--08 用一個實體類接收所有接口數據

list() lse git ack ont nbsp pass 分享圖片 VR

1.用戶信息獲取--bean實體類形式返回數據

①服務器端:

代碼:

 1 protected void onHandler(HttpServletRequest request, HttpServletResponse response, PrintWriter printWriter) {
 2         Map<String, Object> map = new HashMap<String, Object>();
 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<String, String> 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<BaseBean> request = new BaseRequest<BaseBean>(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<String, Object> map = new HashMap<String, Object>();
 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<String, Object> map = new HashMap();
21     List<String> 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<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(1, 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=0;i<list.size();i++){
       s+= "書籍名字" +i + "" + list.get(i)+"\n";
    }
    mTvResult.setText(s);
} else {
    mTvResult.setText("業務處理層數據失敗");
}

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

NoHttp封裝--08 用一個實體類接收所有接口數據