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. nginx索引目录配置

    为了简单共享文件,有些人使用svn,有些人使用ftp,但是更多得人使用索引(index)功能.apache得索引功能强大,并且也是最常见得,nginx得auto_index实现得目录索引偏少,而且功能 ...

  2. jQuery的slicebox插件实现3D翻转轮播效果

    最近做项目,banner要实现立体的翻转效果,通过搜索,发现了jQuery的一款插件,能够很好的实现该效果,这里就记录一下. 效果图如下: 使用方法: 1. 在html中引入必要的js和css文件: ...

  3. POJ - 1469 COURSES (匈牙利算法入门题)

    题意: P门课程,N个学生.给出每门课程的选课学生,求是否可以给每门课程选出一个课代表.课代表必须是选了该课的学生且每个学生只能当一门课程的. 题解: 匈牙利算法的入门题. #include < ...

  4. Where to Run LightOJ - 1287(概率dp)

    Where to Run LightOJ - 1287(概率dp) 题面长长的,看了半天也没看懂题意 不清楚的地方,如何判断一个点是否是EJ 按照我的理解 在一个EJ点处,要么原地停留五分钟接着走,要 ...

  5. 命令__shell数字-字符串比较

    shell常用逻辑判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目录,则为真 -e file 若 ...

  6. 分享一下我写的.net 2.0的orm类,实现mvc。可以用于webform等环境中,这是orm的原理部分。

    using System;using System.Collections.Generic;using System.Configuration;using System.Data;using Sys ...

  7. VC++中有关句柄和指针及其转换(转)

    原文转自 https://blog.csdn.net/jearmy/article/details/47030011 1.MFC窗口的句柄和指针的转换 (1) 一般窗口对象都会有一个其对应的句柄变量, ...

  8. 自己写操作系统 2 - 安装bochs虚拟机

    以ubuntu操作系统为例 一.命令行安装 sudo apt-get install vgabios bochs bochs-x bximage 此方法方便,不过都说这个方法安装的bochs没有调试功 ...

  9. mysql的grant权限参数汇总

    很明显总共28个权限:下面是具体的权限介绍:转载的,记录一下: 一.权限表 mysql数据库中的3个权限表:user .db. host 权限表的存取过程是: 1)先从user表中的host. use ...

  10. wsgi的学习(2):uWSGI的概念

    uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / u ...