首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)

Volley擅长的RPC类型(远程过程调用)的操作过去常常应用于填充UI,例如提取一页的搜索结果作为结构化数据。它更容易和其他协议整合,和出色的支持原始字符串,图片和JSON。...当你调用了add() 方法,Volley启动一个缓存处理线程和一个网络分发线程池。...中断一个请求(Cancel a Request) 要中断一个请求, 在你的请求对象上 调用 cancel()方法.一旦被中断后,Volley会确保 你的响应处理器 绝对不被调用。...在一个工作现场中调用 parseNetworkResponse()....传输响应 (deliverResponse) Volley 使用你的 parseNetworkResponse()中返回的对象到主线程进行回调。

2.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Volley完全解析(三),定制自己的Request

    其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest...在开始之前还是友情提醒一下,如果你还没有阅读过我前面两篇关于Volley的文章,建议先去阅读一下Android Volley完全解析(一),初识Volley的基本用法和Android Volley完全解析...但需要注意的是,在构造函数中一定要调用super()方法将这几个参数传给父类,因为HTTP的请求和响应都是在父类中自动处理的。...在parseNetworkResponse()方法中,先是将服务器响应的数据解析出来,然后通过调用Gson的fromJson方法将数据组装成对象。...好了,本篇文章就到此结束,下篇文章中我们将对Volley进行更深层次的研究,感兴趣的朋友请继续阅读Android Volley完全解析(四),带你从源码的角度理解Volley。

    1.4K60

    Volley从源码梳理主要工作流程简记

    话说Volley这个框架可出来5年了,大佬大佬...... 1.创建网络请求队列 RequestQueue requestQueue=Volley.newRequestQueue(context) 2....创建各种类型的请求 StringRequest, ImageRequest, JsonRequest, JsonObjectRequest, JsonArrayRequest, ... 3.将创建的请求添加到...> response = request.parseNetworkResponse(networkResponse); request.addMarker("network-parse-complete...请求网络时调用this.mNetwork.performRequest(request),这个mNetwork是一个接口,实现它的类是BasicNetwork,我们来看看BasicNetwork的performRequest...headers); 同样,这里mHttpStack是一个接口,它有两个实现类HttpClientStack和HurlStack,至于这里具体由哪个子类来具体进行网络请求,我们来看上班第一步构造网络请求队列时调用的

    47720

    笔记12 | 复习Volley(一)基本概念和用法

    HTTP的请求类型通常有两种,GET和POST,先来学习GET: 首先需要获取到一个RequestQueue对象,可以调用如下方法获取到: RequestQueue mQueue = Volley.newRequestQueue...很遗憾,StringRequest中并没有提供设置POST参数的方法,但是当发出POST请求的时候,Volley会尝试调用StringRequest的父类——Request中的getParams()方法来获取...JsonRequest有两个直接的子类,JsonObjectRequest和JsonArrayRequest,从名字上你应该能就看出它们的区别了吧?...http://www.wwtliu.com/jsondata.html"; JsonObjectRequest jsonObjectRequest = new JsonObjectRequest...你应该发现了吧,JsonObjectRequest的用法和StringRequest的用法基本上是完全一样的,Volley的易用之处也在这里体现出来了。 ----

    83740

    android 网络通信框架volly

    其实,从这幅图,我们也可以看出来,Volley特别适合数据量不大但是通信频繁的场景。 1.1. Volley引入的背景 在以前,我们可能面临如下很多麻烦的问题。...mQueue = Volley.newRequestQueue(getApplicationContext());   mQueue.add(new JsonObjectRequest(Method.GET...android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete);   mImageLoader.get(url, listener);   ImageLoader的方法都需要从主线程里来调用...使用自己定制的request 我们也可以通过继承Request根据自己的需求来定制自己的request @Override protected Response parseNetworkResponse...Volley的架构设计 Volley使用了线程池来作为基础结构,主要分为主线程,cache线程和network线程。

    1.2K50

    Volley请求

    于是乎,一些Android网络通信框架也就应运而生,比如说AsyncHttpClient,它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作了。...首先需要获取到一个RequestQueue对象,可以调用如下方法获取到: RequestQueue mQueue = Volley.newRequestQueue(context);   注意这里拿到的...很遗憾,StringRequest中并没有提供设置POST参数的方法,但是当发出POST请求的时候,Volley会尝试调用StringRequest的父类——Request中的getParams()方法来获取...至于它们的用法也基本上没有什么特殊之处,先new出一个JsonObjectRequest对象,如下所示: JsonObjectRequest jsonObjectRequest = new JsonObjectRequest...你应该发现了吧,JsonObjectRequest的用法和StringRequest的用法基本上是完全一样的,Volley的易用之处也在这里体现出来了,会了一种就可以让你举一反三,因此关于JsonArrayRequest

    1.8K70

    Android Volley完全解析(一),初识Volley的基本用法

    于是乎,一些Android网络通信框架也就应运而生,比如说AsyncHttpClient,它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作了。...首先需要获取到一个RequestQueue对象,可以调用如下方法获取到: RequestQueue mQueue = Volley.newRequestQueue(context); 注意这里拿到的RequestQueue...很遗憾,StringRequest中并没有提供设置POST参数的方法,但是当发出POST请求的时候,Volley会尝试调用StringRequest的父类——Request中的getParams()方法来获取...至于它们的用法也基本上没有什么特殊之处,先new出一个JsonObjectRequest对象,如下所示: JsonObjectRequest jsonObjectRequest = new JsonObjectRequest...你应该发现了吧,JsonObjectRequest的用法和StringRequest的用法基本上是完全一样的,Volley的易用之处也在这里体现出来了,会了一种就可以让你举一反三,因此关于JsonArrayRequest

    1.8K50

    Android Volley完全解析(四),带你从源码的角度理解Volley

    这就要回顾一下Volley的用法了,还记得吗,使用Volley的第一步,首先要调用Volley.newRequestQueue(context)方法来获取一个RequestQueue对象,那么我们自然要从这个方法开始看起了...这里的CacheDispatcher和NetworkDispatcher都是继承自Thread的,而默认情况下for循环会执行四次,也就是说当调用了Volley.newRequestQueue(context...之后会在第39行调用Request的parseNetworkResponse()方法来对数据进行解析,再往后就是将解析出来的数据进行回调了,这部分代码我们先跳过,因为它的逻辑和NetworkDispatcher...在NetworkDispatcher中收到了NetworkResponse这个返回值后又会调用Request的parseNetworkResponse()方法来解析NetworkResponse中的数据...其中parseNetworkResponse()这个方法就是必须要重写的。

    1.2K80

    Android Volley 源码解析(一),网络请求的执行流程

    ,这里的 CacheDispatcher 和 NetworkDispatcher 都是继承自 Thread 的,默认情况下 for 循环会执行四次,也就是说当调用了 Volley.newRequestQueue...> response = request.parseNetworkResponse( new NetworkResponse(entry.data, entry.responseHeaders...> response = request.parseNetworkResponse(networkResponse); // 如果需要的话,就将返回结果写入缓存...需要注意的是在我标注的第一个地方,调用了 Stack 的 executeRequest() 方法,这里的 Stack 就是之前调用 Volley.newRequestQueue() 所创建的实例,前面也说过了这个对象的内部是使用了...在 NetworkDispatcher 接收到了这个 NetworkResponse 对象之后,又会调用 Request 的 parseNetworkResponse() 方法来对结果进行解析,然后将数据写入到缓存

    1.3K40

    Android常用库源码解析

    jsonObjectRequest = new JsonObjectRequest("http://www.sina.com/sports/101010100.html", null,...volley的设计目标就是非常适合数据量小,通信量大的客户端,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。...Volley停止了更新,而OkHttp得到了官方的认可,并在不断优化。...因此我最终替换为了OkHttp volley原理 主线程中调用RequestQueue的add()方法来添加一条网络请求,这条请求会先被加入到缓存队列当中,如果发现可以找到相应的缓存结果就直接读取缓存并解析...黏性事件 简单讲,就是在发送事件之后再订阅该事件也能收到该事件,跟黏性广播类似,但是它只能收到最新的一次消息,比如说在未订阅之前已经发送了多条黏性消息了,然后再订阅只能收到最近的一条消息。

    1.1K10

    Android Volley 源码解析(二),探究缓存机制

    前言 在上一篇文章中,带大家阅读了 Volley 网络请求的执行流程,算是对 Volley 有了一个比较清晰的认识,从这篇文章开始,我们开始针对 Volley 的某个功能进行深入地分析,慢慢将 Volley...一、Volley 缓存的总体设计 ---- 在开始细节分析之前,我们先来看下 Volley 缓存的设计,了解这个流程有助于我们对于缓存细节的把握。...> response = request.parseNetworkResponse(networkResponse); if (request.shouldCache() &&...> response = request.parseNetworkResponse( new NetworkResponse(entry.data, entry.responseHeaders...小结 在调用 Volley.newRequestQueue() 方法获取 RequestQueue 的时候,构建 DiskBaseCache 实例,在 CacheDispatcher 的 run() 方法中调用

    74110
    领券