1、添加noHttp的使用权限

<!-- 读写 sd 卡 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 读取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

2、依赖noHttp开发库

 compile 'com.yolanda.nohttp:nohttp:1.1.0'
compile 'com.yanzhenjie.nohttp:okhttp:1.1.0'
nohttp的底层 1.httpurlconnection 2.okhttp

3、要求在Application对nohttp进行初始化

public class MyApp extends Application{
@Override
public void onCreate() {
super.onCreate();
// 步骤三。要求在 application 对 nohttp 进行初始化
// NoHttp.initialize(this);
//3.1. 创建框架的配置参数对象
NoHttp.Config config=new NoHttp.Config();
//3.2. 连接超时
config.setConnectTimeout(5000);
//3.3. 设置底层 , 底层是 OkHttp
config.setNetworkExecutor(new OkHttpNetworkExecutor());
NoHttp.initialize(this,config);
}
}

4、在清单文件中注册application

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:name=".MyApp"

5、创建请求并进行发送 处理服务端返回的数据

public class HttpUtil {
private static RequestQueue sRequestQueue;
public static void get(String url, OnResponseListener<String> listener) {
StringRequest request = new StringRequest(url, RequestMethod.GET);
if (sRequestQueue == null) {
//创建请求队列
sRequestQueue = NoHttp.newRequestQueue();
}
request.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK);
sRequestQueue.add(0, request, listener);
}
}

注:StringRequest: 返回结果为 String(json/xml) 的请求,使用最广泛的请求对象
    RequestQueue :用来发送请求的。支持子线程
    OnResponseListener :回调对象 | 监听器 提供空方法来编写处理逻辑 ## 步骤五。调用例子

6、设置响应的监听

OnResponseListener<String> listener = new OnResponseListener<String>() {
// 网络请求开始的界面显示
@Override
public void onStart(int what) { }
// 网络请求结束的界面显示
@Override
public void onFinish(int what) { }
// 结果成功的情况
@Override
public void onSucceed(int what, Response<String> response) { }
// 结果失败的情况
@Override
public void onFailed(int what, Response<String> response) { }
};

Nohttp框架在Android Studio中的使用的更多相关文章

  1. 在Android Studio中进行单元测试和UI测试

    本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio.能力有限,如有翻译 ...

  2. Android studio中导入第三方类库

    常常在github上看到一些好用的框架,但是对于一个新手怎样在android studio上导入去总会遇到各种麻烦,索性来研究下第三方类库怎样在android studio上导入. 以我在github ...

  3. android studio 中移除module和恢复module

    一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...

  4. Android Studio中Button等控件的Text中字符串默认大写的解决方法

    初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是 ...

  5. .Net程序员之不学Java做安卓开发:Android Studio中的即时调试窗口

    对学.Net的人来说,JAVA开发是一场噩梦. .net中的即时窗口,调试时直接在里面写代码,对程序中的各种方法/属性进行调用,很方便. Android Studio中找了好久,参考如下网址,也有类似 ...

  6. 如何将Eclipse中的项目迁移到Android Studio 中

    如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...

  7. Android开发的小技巧,在Android Studio中使用Designtime Layout Attributes

    在编写xml文件时,为了预览效果,经常会使用默认填上一些内容,比如TextView时,随便写上一个text <TextView ... android:text="Name:" ...

  8. 在android studio 中使用applicationid的问题

    现在我需要对项目app的某个功能做性能测试,主要测试耗电量的多少. 1.我想到的方式是,我需要在同一台手机测试,同一个应用,需要安装在手机两次,第二次安装不覆盖第一次的安装. 在android stu ...

  9. Android studio 中的配置编译错误总结

    1.编译Andorid 工程的时候,有时候出现gradle 报下面的错误. Error:(1, 0) Cause: com/android/build/gradle/LibraryPlugin : U ...

随机推荐

  1. 使用CAShapeLayer绘图

    之前讲过使用UIBezierPath在UIView的drawRect中绘图, 今天我们讲下另外一种方式: CAShaperLayer 先说说使用CAShapeLayer的优点: GPU执行, GPU执 ...

  2. JS中转义字符的处理

    //去掉html标签 1 2 3 function removeHtmlTab(tab) {  return tab.replace(/<[^<>]+?>/g,'');//删除 ...

  3. 基于Ajax的长轮询(long-polling)方式

    如 图 1 所示,AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面 ...

  4. 【汇编语言】新手第一步——HelloWorld & A+B

    国际惯例,HelloWorld. 这个程序是masm for windows里面的样例程序.按照我自己的理解,对其加上了注释. ;完整段的Hello World程序 DATAS SEGMENT STR ...

  5. List中函数用法 First,FirstOrDefault,Single,SingleOrDefault的区别

    操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ...

  6. C++11多线程std::thread的简单使用

    在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上.但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有 ...

  7. 如何成为一名hacker?

    很多人问我如何成为黑客,一般来说我总是会扯一大堆废话,告诉他们要时刻保持好奇心,要学会打破规则挑战权威之类的. 但这类话肯定不是提问者想听的.我揣摩了一下他们的心情,他们想问的应该是这个问题:如何学习 ...

  8. Mocha的单元测试实战

    Mocha Mocha是一个测试框架,为JS应用添加测试.使用见:mochajs. Mocha结合Nodejs实战 ontstair.js 这里我们使用自定义模块:ontstair.js,代码如下. ...

  9. FZU 2086 餐厅点餐(模拟)

    Problem 2086 餐厅点餐 Problem Description Jack最近喜欢到学校餐厅吃饭,好吃干净还便宜. 在学校餐厅,有a种汤,b种饭,c种面条,d种荤菜,e种素菜. 为了保证膳食 ...

  10. U3D音频系统

    一.基本信息 1.支持的声音格式 WAV OGG MP3 AIFF MOD S3M xm IT    导入以后,unity会选择的压缩方式: WAV:无损,音质好,文件大,适用于较短文件 OGG.MP ...