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. v-if与v-show区别

    在v-show中,元素是一直存在的,当v-show为false时,元素display:none只是隐藏了而已. v-if 作用:判断是否加载固定的内容,如果为真,则加载:为假时,则不加载. 用处:用在 ...

  2. Delivering Goods UVALive - 7986(最短路+最小路径覆盖)

    Delivering Goods UVALive - 7986(最短路+最小路径覆盖) 题意: 给一张n个点m条边的有向带权图,给出C个关键点,问沿着最短路径走,从0最少需要出发多少次才能能覆盖这些关 ...

  3. 洛谷 P4008 [NOI2003]文本编辑器 解题报告

    P4008 [NOI2003]文本编辑器 题目描述 很久很久以前,\(DOS3.x\)的程序员们开始对 \(EDLIN\) 感到厌倦.于是,人们开始纷纷改用自己写的文本编辑器⋯⋯ 多年之后,出于偶然的 ...

  4. 最大异或和(xor)

    最大异或和(xor) 题目描述 给定一个非负整数序列{a},初始长度为N. 有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数x,序列的长度N+1. 2.Q l r x: ...

  5. jquery.jbox JBox-v2.3修改版

    原版jquery.jbox是个不错的jquery扩展,使用简单,功能很多.可惜的是作者把javascript加密了,并且2011年以后就不再更新.如果项目中用到了新的jquery版本,甚至jbox就没 ...

  6. [ CodeVS冲杯之路 ] P1017

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1017/ 看到题目最下面有一个喜人的提示 那这就意味着我们不用写高精度了是不是,直接开 long long 存 设 f[ ...

  7. Android控件点击事件

    1. 介绍 本文介绍了Android控件的点击事件 Android控件点击(onClick)事件可以用如下三种方式来实现 2. 实现onClick方法 在layout的xml中指定onClick方法, ...

  8. JMM内存模型+volatile+synchronized+lock

    硬件内存模型: Java内存模型: 每个线程都有一个工作内存,线程只可以修改自己工作内存中的数据,然后再同步回主内存,主内存由多个内存共享. 下面 8 个操作都是原子的,不可再分的: 1)  lock ...

  9. 解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.17' not found问题

    在项目中使用第三方动态库时,出现异常:/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found 查看系统库时,发现确实没有对应的版本: ...

  10. java的io操作(将字符串写入到txt文件中)

    import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java ...