NoHttp详细使用文档,请点我移步!

这里是一个最基本的使用,在项目中也可以直接这样使用,如果想学习更多请移步NoHttp主页:
https://github.com/yanzhenjie/NoHttp

特别注意:这里的RequestQueue是请求队列,默认3个并发请求,也就是有3个子线程在跑,所以正式项目中不要每发起一个请求就new一个队列,建议在BaseActivity#onCreate(Bundle)中new一个队列即可,这个activity的所有请求包括依赖此activityfragment都是用这个队列即可,在BaseActivity#onDestory()stop这个队列即可,当然特殊情况下可以再new一个Queue出来,也无伤大雅的。

建议读者阅读完下方的代码后再把上面这句话读一遍,会理解的更深刻。

BaseActivity,提供基础的封装

public class BaseActivtiy extends Activity implements View.OnClickListener {

    /**
* 请求队列
*/
private RequestQueue mRequestQueue; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 创建请求队列, 默认并发3个请求, 传入数字改变并发数量: NoHttp.newRequestQueue(5);
mRequestQueue = NoHttp.newRequestQueue();
} @Override
protected void onDestroy() {
super.onDestroy(); mRequestQueue.cancelAll(); // 退出页面时时取消所有请求。
mRequestQueue.stop(); // 退出时销毁队列,回收资源。
} /**
* 发起一个请求。
*
* @param what what.
* @param request 请求对象。
* @param listener 结果监听。
* @param <T> 要请求到的数据类型。
*/
public <T> void request(int what, Request<T> request, OnResponseListener<T> listener) {
mRequestQueue.add(what, request, listener);
}
}

在BaseActivity的子类中使用

public class MainActivity extends BaseActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); ...
} /**
* 请求用户信息。
*/
private void requestUserInfo() {
Request<String> req = NoHttp.createStringRequest(url);
request(0, req, new OnResponseListener<String>() {
@Override
public void onStart(int what) {
// 请求开始,可以显示一个dialog。
} @Override
public void onSucceed(int what, Response<String> response) {
// 请求成功,这里判断服务器的响应码,假如你们服务器200时,才是业务成功:
Headers headers = response.getHeaders();
if(headers.getResponseCode() == 200) {
String result = response.get(); // 拿到结果。
}
} @Override
public void onFailed(int what, Response<String> response) {
// 请求失败,具体失败类型,请看nohttp主页的demo。
} @Override
public void onFinish(int what) {
// 请求结束,关闭dialog。
}
});
}
}

在BaseActivity的子类的Fragment中使用

public class MainFragment extends Fragment {

    /**
* 请求用户信息。
*/
private void requestUserInfo() {
Request<String> req = NoHttp.createStringRequest(url);
((MainActivity)getActivity()).request(0, req, new OnResponseListener<String>() {
@Override
public void onStart(int what) {
// 请求开始,可以显示一个dialog。
} @Override
public void onSucceed(int what, Response<String> response) {
// 请求成功,这里判断服务器的响应码,假如你们服务器200时,才是业务成功:
Headers headers = response.getHeaders();
if(headers.getResponseCode() == 200) {
String result = response.get(); // 拿到结果。
}
} @Override
public void onFailed(int what, Response<String> response) {
// 请求失败,具体失败类型,请看nohttp主页的demo。
} @Override
public void onFinish(int what) {
// 请求结束,关闭dialog。
}
});
} }

如果想学习更多的使用方法,建议参考Demo:https://github.com/yanzhenjie/NoHttp
更多使用介绍请阅读NoHttp文档:doc.nohttp.net

NoHttp详解之NoHttp最基本使用(无封装)的更多相关文章

  1. $_FILES参数详解及简单<form>表单无刷新上传文件

    $_FILES:经由 HTTP POST 文件上传而提交至脚本的变量,类似于旧数组$HTTP_POST_FILES 数组(依然有效,但反对使用)详细信息可参阅 POST方法上传 $_FILES数组内容 ...

  2. springdata+redis配置详解

    springdata设计初衷是位简化数据类型和数据的持久化存储,它并不局限是关系型数据库还是nosql数据库,都提供了简化的数据库连接,让数据获取变得更加的简单.所有这些的实现有统一的api提供. 本 ...

  3. HttpSession详解

    HttpSession详解   session的机制 http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?s ...

  4. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  5. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  6. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  7. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  8. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  9. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

随机推荐

  1. CodeForces Round #515 Div.3 C. Books Queries

    http://codeforces.com/contest/1066/problem/C You have got a shelf and want to put some books on it. ...

  2. ubuntu16.04 使用问题笔记

    1.问题: 下列软件包有未满足的依赖关系: vim : 依赖: vim-common (= 2:7.4.826-1ubuntu1) 但是 2:7.4.1689-3ubuntu1 正要被安装 E: 无法 ...

  3. MyBatis 基本演示

    主配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration P ...

  4. hdu 1551 Cable master (二分法)

    Cable master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  5. Lights inside 3D Grid LightOJ - 1284 (概率dp + 推导)

    Lights inside 3D Grid LightOJ - 1284 题意: 在一个三维的空间,每个点都有一盏灯,开始全是关的, 现在每次随机选两个点,把两个点之间的全部点,开关都按一遍:问k次过 ...

  6. org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [WebApp] in context with path关于数据库库的问题

    1.在本地~~把你的查询的sql打印出来~~~然后拿到测试库里面执行一遍~~然后拿到正式库里面在执行一遍  2.看生产和本地~~1).代码不同步:2).就是数据为空问题 3.也有可能是数据库配置文件问 ...

  7. 《R语言实战》读书笔记--第二章 创建数据集

    2.1数据集的概念 变量的类型是不同的,比如标示符.日期变量.连续变量.名义变量.有序型变量等,记得数据挖掘导论中有专门的描述. R可以处理的数据类型包括了数值型.字符型.逻辑型.复数型(虚数).原生 ...

  8. AGC007 - C Pushing Ball

    Description 题目链接 懒得写详细题意了, 放个链接 \(n\le 2*10^5\) 个球, \(n+1\) 个坑, 排成数轴, 球坑交替. 相邻球-坑距离为等差数列 \(d\). 给定首项 ...

  9. 【CF1023D】Array Restoration(构造,线段树)

    题意:有一个长为n的序列,对其进行q次操作,第i次操作可以把连续的一段覆盖为i 现在给出操作后的序列,第i个数字为a[i],其中有一些为0的位置可以为任意值,要求构造任意一组合法的操作后的序列 无解输 ...

  10. JSP、JSTL、EF学习笔记

    JSP 1)Java Server Page,在html中嵌入java代码 2)九个内置(隐式)对象 request response out page pageContext config sess ...