Volley(一)

volley-1.0.11.jar volley-1.0.11.jar, 直接引入 立即下载

首先,我使用的是AndroidStudio,用的依赖是:compile 'com.android.volley:volley:1.0.0'

Eclipse开发可以到GitHub上下载,然后导入。https://github.com/google/volley

Volley是集请求,图片,文件下载于一身的框架,在面对数据量小,请求次数多时发挥功能强大,而面对大文件下载等大数据传输时则力不从心。

Volley请求网络都是基于请求队列的,我们只需要将请求放在队列中,则会在队列以此处理,因此在大量网络请求,队列发挥着重要作用。

Volley:

RequestQueue 用来执行请求的请求队列

Request 用来构造请求对象

Request:

StringRequest 响应的主体为字符串

JsonArrayRequest 发送和请求Json数组

JsonObjectRequest 发送和接收Json对象

ImageRequest 发送和接收Image图片


使用:

首先我们需要创建一个ResuestQueue,然后再创建自己需要的请求并通过 add 来将其添加进请求队列中。 requestQueue = Volley.newRequestQueue(context);


然后需要创建自己的请求对象,这里的例子是使用StringRequest类,得到的是String类型的网络数据,并将该请求对象添加至请求队列中,等待相应:

	StringRequest s = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                return super.getParams();
            }
        };

这里我们使用Post请求方式来进行访问url,之后再StringRequest类中又重写了getParams方法是为了添加请求参数。


还有现在最常用的JSON格式:

	JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, new JSONObject(), new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        requestQueue.add(jsonObjectRequest);

在此,我们是访问网络数据。

在Volley中还嵌入ImageLoader框架,用于网络图片处理,方法和上面很像,也是在列队中添加一个Request请求对象,之后列队会为我们处理该请求。

使用ImageRequest来完成这一请求编码

	ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap response) {

            }
        }, 100, 100, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        requestQueue.add(imageRequest);


使用ImageLoader:

在Volley中的ImageLoader内部也是使用ImageRequest来实现的,但是ImageLoader比其更加高效,因为他不仅可以帮我们队图片进行缓存,还可以过滤重复的链接,避免出现重复请求。该现象在ListView、GridView上更加明显。

方法和之前有所不同,首先需要创建Queue队列(第一步一样)。

第二,创建ImageLoader对象,其中就需要将队列对象传进去:

	ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {
            @Override
            public Bitmap getBitmap(String url) {
                return null;
            }

            @Override
            public void putBitmap(String url, Bitmap bitmap) {

            }
        });

第三步,就是调用 ImageLoader的getImageListener 方法,第一个参数是放置的控件,第二个是加载时的图片,第三个图片是加载失败时显示的图片。

	ImageLoader.ImageListener imageListener = imageLoader.getImageListener(imageView, R.drawable.ic_launcher, R.drawable.ic_launcher);

在最后,调用ImageLoad的 get 方法放置我们的url和配置好的imageListener。当然他也有设置图片大小的重载方法。

	imageLoader.get(url, imageListener);
以上是对ImageLoader的基本用法,而高级用法都在 cache 中。在此推荐使用LruCache功能进行缓存。


	class BitmapCache implements ImageLoader.ImageCache {

        public LruCache<String, Bitmap> lruCache;

        public BitmapCache() {
            lruCache = new LruCache<String, Bitmap>(8 * 1024 * 1024) {
                @Override
                protected int sizeOf(String key, Bitmap value) {

                    return value.getRowBytes() * value.getHeight();
                }
            };
        }

        @Override
        public Bitmap getBitmap(String url) {
            return lruCache.get(url);
        }

        @Override
        public void putBitmap(String url, Bitmap bitmap) {
            lruCache.put(url, bitmap);
        }
    }
这里实现了ImageCache接口,并在其中使用LruCahce集合来做缓存。

NetworkImageView

在最后,Volley还提供了第三种方式加载网络图片。NetworkImageView控件。

1.创建RequestQueue列队

2.创建ImageLoader对象

3.在布局中添加该控件

4.在代码中找到该控件并设置要加载的图片地址

	networkImageView.setDefaultImageResId(R.drawable.default_image);  
	networkImageView.setErrorImageResId(R.drawable.failed_image);  
	networkImageView.setImageUrl("https://img-my.youkuaiyun.com/uploads/201404/13/1397393290_5765.jpeg",  
                imageLoader);  

当然,我们可以继承Request类来自己定义自己的请求方式,确认得到制定的返回格式。







MaxEnt软件的下载与安装 1、下载网站:http://lucky-boy.ys168.com/ (这是之前在网上搜到的,里面有许多软件安装包,感谢网页主的资源共享,违权必删) 阅读详情

相关推荐

Linux下离线安装Google Chrome

目录背景一、下载并安装Google Chrome二、下载并安装依赖包1.libvulkan.so.1()(64bit)2.读入数据总结 背景 项目中服务器被要求不能连接外网,不能直接联网安装,所以需要下载Google Chrome安装包和依赖包,然后离线安装。 linux下步骤都一样,不管ubuntu还是centos只是需要下载对应系统的文件包即可。 本机系统:CentOS 7 一、下载并安装Google Chrome 官方下载地址http://www.google.cn/chrome/browser/d

ancientapesman的博客 1万+

Android 网络请求数据(Volley)

第一步:创建请求队列 RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); 第二步:创建JSONObjectRequest请求,将请求添加到队列中 url:上传的认证信息; utf8Url:将上传的认证信息使用utf-8编码; mStrWeatherUrl :请求的地址; private ...

抬頭觸摸那一抹陽光的博客 469

RK3568/RK3588之修改8250驱动实现RS485收发的自动切换

在串口发送前,若为485,则将控制引脚拉为发送状态,在发送后,循环查看是否发送完成,若发送完成则将引脚置回读状态,如此一来,就能实现在内核测控制方向切换,而不会因为延时造成数据丢失,经过测试此办法可行。全部修改完成后,重新编译生成内核文件和设备树文件,烧写到板子上即可。

哒宰的博客 3122

android studio 2021.2.1版添加volley依赖失败情况记录

加依赖失败

kim5659的博客 662

系统回溯信息:遇到严重错误。已将回溯写入...PTC... raceback.log请将其发送给|技术支持|。

一、问题分析 这种问题一旦遇上了,如果忘了保存,直接心态爆炸。 该问题一般是显卡驱动的问题。ProE/Creo对显卡的基本要求是:支持Open_GL的3D显卡,分辨率为1024×768像素以上,推荐使用64位独立显卡,显存512MB以上。如若显卡性能太低,打开软件后易自动退出。 二、解决方法 <1>有一个非常简单的方法是:在config.pro文件中,改变图形配置graphics为” win32_gdi”而不是默认的“...

幕光倾城的博客 2万+

从零开始掌握Simscape Multibody:机械系统建模与仿真入门

本文为机械系统建模与仿真入门指南,详细介绍了如何从零开始使用Simscape Multibody。通过构建曲柄摇块机构的实战案例,系统讲解了刚体、关节、约束等核心模块的使用,以及模型验证、参数化设计和多领域系统集成等进阶技巧,帮助工程师和学生高效进行虚拟设计与测试。

weixin_29229261的博客 312

APK报错:错误: 程序包com.android.volley不存在

file->project structure->Dependencies 点+符号,添加相关包 解决问题

wuxinke_blog的专栏 1765

多后端系统统一聚合与智能分流:用 Multi Origin Composition 与 Routing 打造一套可扩展的 SAP Gateway 架构

本文针对企业级SAP集成场景,详细介绍了如何利用SAP Gateway的MOC(多源组合)和Routing功能实现多后端系统的智能路由与数据聚合。通过系统别名配置、用户角色绑定和主机名分流等机制,可实现按用户、按域名的精确路由。文章还提供了配置清单、性能优化建议和常见问题解决方案,帮助工程师落地多后端OData服务的最佳实践。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 187

使用Google Volley及遇到的坑

1 Volley的介绍     Volley从服务器端请求字符串数据,图片数据,和JSON格式数据。Volley可以写出标准化的模板代码,并让我们更加关注于我们的业务逻辑,这对于我们的App来说是非常重要的。   Volley的优势:    自动的调度网络请求 多并发的网络请求  可以缓存http请求 支持请求的优先级 支持取消请求的API,可以取消单个请

ShareUs的专栏 4907

【git】git: ‘interpret-trailers’ is not a git command. See ‘git --help’

cents 7.6系统. yum源安装git最新版本是1.8.3 报错: git: 'interpret-trailers' is not a git command. See 'git --help'. cannot insert change-id line in .git/COMMIT_EDITMSG 解决: git add xxx git commit -m "xxx" 然后修改 vim .git/hooks/commit-msg #if test -n "${reviewurl}" ; th

machh的专栏 4760

2025.05.28【读书笔记】|如何用SILVA和RFAM数据库高效去除rRNA污染

摘要: 在Ribo-seq等测序数据分析中,清除rRNA污染对结果准确性至关重要。仅使用SILVA数据库可能遗漏5S rRNA污染,建议结合RFAM数据库(特别是RF00001家族)全面清除。操作要点包括:下载两库序列、将RNA碱基U替换为DNA的T、合并序列建立索引,使用bowtie2过滤rRNA reads。注意U/T转换是关键,否则会导致比对失败。该方法能有效提升数据清洁度,为后续分析奠定基础。

980

android studio volley compile添加依赖

compile 'com.mcxiaoke.volley:library:1.0.19'

sdsfs443的博客 5880

撸毛笔记-朴朴超市 v1.01

朴朴超市 v1.01脚本地址:自动签到和组队赚朴分, 朴分可以抵扣50%的金额组队瓜分需要4人成团, 每个号每天只能开团和入队各一次每天跑一两次即可使用扫码或自己想办法捉refreshToken扫码获取token: (先微信进入朴朴超市小程序并登录注册过账号再扫码)把获取的refreshToken和备注(非必须)填到文件pupuCookie.txt里(第一次运行会自动创建), 多账号换行或&或@隔开。

xiaoshun007的专栏 1813

Android Volley使用(一)Volley的基本用法

Volley使用介绍

Errol's Blog 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

参考别人的分析对于Volley的理解(一)

最近由于自己对于Android学习的深入,我发现自己对于Java的编码风格,Android的编码格式等需要有比较迫切的提升,所以我决定从别人的优良库入手,去学习别人的代码是怎么写的。这一次,我选择了Volley库,也是我经常使用的网络库,因为经常有人问我它的原理,而我答得并不是很好。我参考的是 Volley解析 这篇文章。 基本介绍 Volley 是 Google 推出的 Android

DerWeltraum 692

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Volley框架(一):使用Volley请求数据

volley官网地址:https://android.googlesource.com/platform/frameworks/volley/ volley发布视频:https://www.youtube.com/watch?v=yhv8l9F44qo&feature=player_embedded 网络是Android开发中非常重要的一部分,Android系统中主要提供了两种方...

ITRenj的博客 1713

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Volley源码解析(一)Volley中乱码问题及解决方案

1 返回值乱码问题我们在使用Volley进行网络请求非常的简单,如请求一个字符串只需要定义一个StringRequest的对象就可以了。如:StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() {

chengshuyuan_uestc的专栏 1674

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

我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。Android开发团队也是意识到了有必要将HTTP的通信操作再进行简单化,于是在2013年Google I/O大会上推出了一个新的网络通信框架——Volley。Volley可是说是把AsyncHttpC

郭霖的专栏 36万+

Android Volley详细解析(一):Volley基本用法

一、什么是Volley?  Volley,是谷歌官方于2013年发布的用于Android平台的网络通信库,也即是说它内部封装了HttpURLConnection等常用于网络通信的类。平时我们写网络通信的业务逻辑的时候,通常是一大段一大段的HttpURLConnection的逻辑,这给我们造成了很多麻烦,如可能存在很多重复的代码或者效率过低又或者存在并发问题。而Volley的出现,极大简化了网络通信的

蓝天白云梦的csdn博客 6473

Volley源码解析一

基本使用 //创建请求队列 google推荐写一个单例类 获取唯一一个队列 public class VolleyApplication extends Application { private static RequestQueue requestQueue; @Override public void onCreate() { super.onCre...

k_every的博客 386

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

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

hfdhjjj的博客 241

Volley简介(一)

源码下载地址

月清空的博客 1318

Volley的使用(一)

1、Volley简介 Volley是2013年google I/O上发布的一款网络框架,基于Android平台,能使网络通信更快、跟简单、更健全。 优点: 1、默认Android2.3及以上基于HttpURLConnection,2.3以下使用基于HttpClient; 2、符合Http缓存语义的缓存机制(提供了默认的磁盘和内存等缓存); 3、请求队列的优先级排序; 4、提供多样的取消...

一个小菜鸟的成长之路的专栏 982

android网络开源框架volley(一)——从一个demo开始

五月份的Google I/O 2013大会上Google发布了开源的网络框架volley。听说反应很好,因此决定花点时间研究一下。

ttdevs 5835

Volley源码理解之 一

最近项目需要用到volley,觉得有必要读一下源码,于是乎把这几天的理解写出来,希望能帮助到大家的理解。 volley的具体使用可以参考这里写链接内容。由于太懒就直接借鉴网上的教程啦。Volley类 Volley类主要实现了了一个newRequestQueue方法,在这个方法做了一些初始化工作。 public static RequestQueue newRequestQueue(Contex

recall2012的专栏 628

Volley解析(一)--Volley的使用

Volley解析(一)--Volley的使用 Volley 是一个HTTP协议的网络请求框架 Volley的优势: 自动安排网络请求 支持多个并发网络连接 具有标准HTTP缓存一致性的透明磁盘和内存响应缓存 支持请求优先级 支持取消请求api。可以取消单个请求,也可以设置要取消的请求的块或范围。 定制方便,支持失败重试和回退 强排序,可以轻松地从网络异步获取的数据中正确填充UI。 具有...

dgd29756的博客 216
上一篇: Android网络请求(HTTP)
下一篇: Volley(二)
羊羊爱代码
博客等级 码龄11年 8粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值