第一个androidAPP项目总结—数据请求
- 1.使用
ShenBuLuoHttpImpl.getMHttpImpl(context).getAddressList(mod.getCouponCode(), new HttpAfter() {
@Override
public void afterSuccess(Result resultBean) {
//数据解析
Object list = resultBean.getResult();
KaQuanMod[] mlist = JsonUtils
.getObjectMapper().convertValue(
list,
KaQuanMod[].class);
notifyDataSetChanged(); } @Override
public void afterFail(Result resultBean) {
//mSwipeLayout.setRefreshing(false);
} @Override
public void afterError(Result resultBean) {
//mSwipeLayout.setRefreshing(false);
}
});
- 2.ShenBuLuoHttpImpl类
public class ShenBuLuoHttpImpl extends BaseHttpImpl {
private static ShenBuLuoHttpImpl mHttpImpl;//单例的接口处理类 private ShenBuLuoHttpImpl(Context con) {
super(con);
mContext = con;
} /**
* 获取接口处理类
*
* @param con
* @return
*/
public static ShenBuLuoHttpImpl getMHttpImpl(Context con) {
if (mHttpImpl == null) {
mHttpImpl = new ShenBuLuoHttpImpl(con);
}
return mHttpImpl;
}
public void getAddressList(final HttpAfter afterHttp) {
if (AppDataUtils.userId == null) {
showToast("请登录");
return;
}
new HttpHelper.Builder().toUrl(URLUtils.GET_ADDRESS)
.addParams("userId", AppDataUtils.userId)//用户ID
.addParams("token", AppDataUtils.token)
.executeGet(new AsyncHandlerTextBase() {
@Override
public void onSuccess(int statusCode, Header[] headers, String result) {
super.onSuccess(statusCode, headers, result);
//解析
final Result resultBean = JsonUtils.readValue(result, Result.class);
switch (Integer.valueOf(resultBean.getCode())) {
case URLUtils.RESULT_SUCCESS:
afterHttp.afterSuccess(resultBean);
break;
case URLUtils.RESULT_FAILED:
afterHttp.afterFail(resultBean);
//请求数据失败
showToast(resultBean.getReason());
break;
case URLUtils.RESULT_ERROR:
afterHttp.afterError(resultBean);
//服务器崩溃
showServerErrorMsg(resultBean);
break;
default:
// 其他情况处理,一般弹出原因
showOtherErrorMsg(resultBean);
break;
}
} @Override
public void onFailure(int statusCode, Header[] headers, String result, Throwable
throwable) {
showToast(mContext.getString(R.string.server_busy));
}
} ).build();
}
}
- 3.HTTPHelper类
package com.puyuntech.sixcontry.http; import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams; /**
* Created by Nicodelee on 15/6/15.
*/
public class HttpHelper {
private RequestParams params;
private String url;
private AsyncHttpResponseHandler responseHandler; public static class Builder { private String url = ""; private RequestParams params = null;
private AsyncHttpResponseHandler responseHandler = null; public Builder(){
} public Builder toUrl(String burl){
url = burl;
return this;
} public Builder addParams(String key, String value) {
if (params == null) {
params = new RequestParams();
}
params.put(key,value);
return this;
} public Builder executeGet( AsyncHttpResponseHandler responseHandler){
AsnyClient.get(url, params, responseHandler);
return this;
} public Builder executePost( AsyncHttpResponseHandler responseHandler){
AsnyClient.post(url, params, responseHandler);
return this;
} public HttpHelper build() {
return new HttpHelper(this);
}
} private HttpHelper(Builder builder) {
params = builder.params;
url = builder.url;
responseHandler = builder.responseHandler;
} }
第一个androidAPP项目总结—数据请求的更多相关文章
- 第一个androidAPP项目总结—ListView的上拉和下拉
1.下拉刷新 需继承implements SwipeRefreshLayout.OnRefreshListener @Overridepublic void onRefresh() { new Wea ...
- 使用promise构建一个向服务器异步数据请求
function getJSON(Url){ return new Promise((resolve,reject)=>{ request= new XMLHttpRequest(); requ ...
- vue2整个项目中,数据请求显示loading图
一般项目中,有时候会要求,你在数据请求的时候显示一张gif图片,然后数据加载完后,消失.这个,一般只需要在封装的axios中写入js事件即可.当然,我们首先需要在app.vue中,加入此图片.如下: ...
- vue2整个项目中,数据请求显示loading图----------未完成阅读,码
一般项目中,有时候会要求,你在数据请求的时候显示一张gif图片,然后数据加载完后,消失.这个,一般只需要在封装的axios中写入js事件即可.当然,我们首先需要在app.vue中,加入此图片.如下: ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- 防抖与节流 & 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据
博客地址:https://ainyi.com/79 日常浏览网页中,在进行窗口的 resize.scroll 或者重复点击某按钮发送请求,此时事件处理函数或者接口调用的频率若无限制,则会加重浏览器的负 ...
- 对前端的一个H5项目的所思所想
最近接触一个前端HTML5的项目,虽然我主做iOS,但曾经也徒手用html+css+js+php写过一个博客,当然表示无压力了.结果.现在的前端发展的速度真是快啊,项目中用到Jquery,reactJ ...
- (转)一个JavaWeb项目开发总结
原文地址:http://www.cnblogs.com/lzb1096101803/p/4907775.html 一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml-&g ...
- VueJS搭建简单后台管理系统框架 (二) 模拟Ajax数据请求
开发过程中,免不了需要前台与后台的交互,大部分的交互都是通过Ajax请求来完成,在服务端未完成开发时,前端需要有一个可以模拟Ajax请求的服务器. 在NodeJs环境下,通过配置express可访问的 ...
随机推荐
- jquery 导航栏目
JS 文件<script type="text/javascript"> $(document).ready(function(){ $(".level1 & ...
- sql server 调优----索引未使用
SELECT TOP 1000o.name AS 表名, i.name AS 索引名, i.index_id AS 索引id, dm_ius.user_seeks AS 搜索次数, dm_ius.us ...
- POJ2485 Highways(最小生成树)
题目链接. 分析: 比POJ2253要简单些. AC代码: #include <iostream> #include <cstdio> #include <cstring ...
- BZOJ1782: [Usaco2010 Feb]slowdown 慢慢游
1782: [Usaco2010 Feb]slowdown 慢慢游 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 541 Solved: 326[Sub ...
- HDU 献给杭电五十周年校庆的礼物 1290 递推
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1290 题目大意: n刀最多可以把一块蛋糕切多少块 题目分析: 假如我们按照立体考虑的话,这题就非常不 ...
- 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具
原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...
- Minimum Depth of Binary Tree ——LeetCode
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- IBM Intel 微软
IBM是全球IT第一巨头,也是一个很奇特也很强大强大的公司,从螺丝钉键盘鼠标到CPU硬盘内存到大型机巨型机,它都可以制造,从软件到硬件到服务,它都可以提供,这在IT历史上,是否绝后我不敢说,空前应该是 ...
- 130+ essential vim commands
Basics :e filename Open filename for edition :w Save file :q Exit Vim :q! Quit without saving :x Wri ...
- QThread 与 QObject的关系
Threads and QObjects QThread 继承 QObject..它可以发送started和finished信号,也提供了一些slot函数. QObject.可以用于多线程,可以发送信 ...