volley

Android JSON解析库的使用

可紊 提交于 2020-01-13 00:30:24
一、Json: 首先回顾下JSON的基本概念,JSON是一种轻量级的数据交换格式。用于数据转换传输,通用与PHP、JAVA、C++、C#、Pyth等编程语言数据交换传输。 易于阅读和编写,同时也易于解析和生成。 基本结构:对象、数组。 二、Gson的简介和特点: Gson是Google提供的用来在JAVA对象和JSON数据之间进行映射的JAVA类库。可将一根JSON字符串转成一个JAVA对象,或者反过来。 快速、高效 代码量少、简洁 面向对象 数据传递和解析方便 三、Fast-json简介和特点 1、Fastjson是一个性能很好的java语言实现的JSON解析器和生成器,来自于阿里巴巴的工程师开发。具有极快的性能,超越其他的Java Json Patser。 快速FAST(比其他任何基于Java的解析器和生成器更快 强大(支持普通的JDK类包括任意Java Bean Class、Collection、Map、Date或enum) 零依赖 支持注解、支持全类型序列化。 2、基本用法: 定义实体类 根据需要可以将JSON生成单个实体或者列表实体集合 四、代码演示: Gson 和 Fast-json 的实际应用案例 效果: package com.jike.jsondemo; import java.util.ArrayList; import org.json

( 一 ) Volley 源码深入了解之 RequestQueue

杀马特。学长 韩版系。学妹 提交于 2019-12-11 19:45:23
一、为什么选 volley ? 说起 volley 还真是有点年头了,在 okHttp 未出之前 volley 其实也是个很火的框架,不过随着移动端日新月异的发展速度,使用的人越来越少却是不争的事实,当然本篇博客也不是要说这些,优秀的源码总是学习的最佳案例尤其是 Google 出品的 volley ,短小精悍的体积相比一些动辄十几个包成千上百个类的框架源码,无疑是非常适合用来阅读学习的。技术的发展以及需求的多变使得各种各样的框架层出不穷,但变得其实只是外面,里子的思想是支持外在变化的根本,对于编程人员来说这更是通往高层次的必经之路。 二、Volley 介绍 Volley 是 Google 在 2013 年在 Google I/O 大会上推出的一款轻量级网络请求框架,Volley 的设计目标是针对那些数据量不大却通信频繁的请求比如新闻类 App 、社交类App、Volley 在这方面的性能非常高效而且简单易用,抛却了 HttpUrlConnection 那繁琐的用法,但Volley不适合大型下载或流式传输操作,因为Volley在解析期间会将所有响应都保存在内存中,所以如果用 Volley 来进行下载文件的话那么表现可能就很糟糕了。 三、Volley 的工作流程 上图是 Google 官方给出的 Volley 工作流程图,从图中可以很清楚的看到 Volley 从 request 到

( 二 ) Volley 源码深入了解之 Dispatcher

て烟熏妆下的殇ゞ 提交于 2019-12-11 14:39:12
一、概述 从上一篇博客中我们已经了解了 RequestQueue ,如果对 RequestQueue 不是很了解那么不妨先看看上篇博客 ( 一 ) Volley 源码深入了解之 RequestQueue ,本篇博客将会接着上篇的分析继续从源码的角度深入了解 CacheDispatcher 和 NetworkDispatcher 是如何工作的 二、 深入了解 CacheDispatcher 在分析之前,照列先看官方给的流程图 经过上篇的分析创建 request 添加到 RequestQueue 过程我们已经很清楚了,而两个 Dispatcher 内部的工作流程我们还没有很深入的了解,这一节我们先看看 CacheDispatcher 上一篇我们说过,当调用 RequestQueue 的 start 方法时会创建 CacheDispatcher 和 NetworkDispatcher 对象 ,现在我们来回顾一下 public class RequestQueue { /** 启动所有 dispatcher */ public void start() { stop(); // 启动之前先停止所有 dispathcer // 在这里创建了缓存调度器并启动 mCacheDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue,

volley 使用方法

允我心安 提交于 2019-12-05 05:53:44
1 Volley发送get请求: public void getJson() { String url = "http://"+host+":8080/web/json.jsp?username=xjs&password=123456"; mQueue.add(new JsonObjectRequest(Method.GET, url, null, new Listener() { @Override public void onResponse(JSONObject response) { Log.e(TAG, "response : " + response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { String err = error.getMessage(); Log.e(TAG, "err : " + err); } })); } 2 Volley发送post请求: public void postJson() { String url = "http://"+host+":8080/web/json.jsp"; StringRequest postRequest = new

网络请求框架---Volley

不羁岁月 提交于 2019-12-05 04:04:14
去年的Google I/O大会为android开发者带来了一个网络请求框架,它的名字叫做Volley。Volley诞生的使命就是让Android的网络请求更快,更健壮,而且它的网络通信的实现是基于HttpURLConnection的。前几天我整理了两个网络请求工具类,应付日常工作的开发需求还是没问题的,自己分别在HttpURLConnection和HttpClient的基础上进行进一层的封装,保证了API的足够简洁友好。有兴趣的同学可以回头去翻翻,源码在Github上,搜索 AndroidHttpUtil 即可找到。Volley基于jdk原生的网络请求类和BlockingQueue实现了它的网络请求的功能。下面为大家一一介绍下Volley为编程带来的实在好处。 准备步骤 git clone https: //android.googlesource.com/platform/frameworks/volley 导入项目,再export Jar包,推荐导出为带有源码的,便于查看源码 图片加载 同时Volley还为开发者提供了一个直接加载网络url的ImageView---NetworkImageView,使用起来更加的方便。 HTTP请求 Volley支持Http请求的所有八种方法,支持请求成功和失败的回调。还支持设置超时时间、失败后的重连次数、设置url缓存、以及为请求设置Tag

Android网络通信库Volley简介

吃可爱长大的小学妹 提交于 2019-12-04 17:44:07
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。 这是Volley名称的由来: a burst or emission of many things or a large amount at once 在Google IO的演讲上,其配图是一幅发射火弓箭的图,有点类似流星。见下图 其实,从这幅图,我们也可以看出来,Volley特别适合数据量不大但是通信频繁的场景。 1.1. Volley引入的背景 在以前,我们可能面临如下很多麻烦的问题。 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取。 通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源 在AsyncTask#onPostExecute()里设置相应ImageView的属性。 而在Volley下,只需要一个函数即可,详细见后面的例子。 再比如,屏幕旋转的时候,有时候会导致再次从网络取得数据。为了避免这种不必要的网络访问

Android 网络通信框架Volley简介(Google IO 2013)

↘锁芯ラ 提交于 2019-12-04 13:56:02
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。 这是Volley名称的由来: a burst or emission of many things or a large amount at once 在Google IO的演讲上,其配图是一幅发射火弓箭的图,有点类似流星。见下图 其实,从这幅图,我们也可以看出来,Volley特别适合数据量不大但是通信频繁的场景。 1.1. Volley引入的背景 在以前,我们可能面临如下很多麻烦的问题。 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取。 通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源 在AsyncTask#onPostExecute()里设置相应ImageView的属性。 而在Volley下,只需要一个函数即可,详细见后面的例子。 再比如,屏幕旋转的时候,有时候会导致再次从网络取得数据。为了避免这种不必要的网络访问

Netroid:强大、快速、易用、可扩展基于Volley实现的Android Http库

若如初见. 提交于 2019-12-04 03:17:34
简介: Netroid是一个基于 Volley 实现的Android Http库。提供异步执行网络请求、缓存返回结果、批量图片加载、大文件断点下载的常见Http交互功能。致力于避免每个项目重复开发基础Http功能,实现显著地缩短开发周期的愿景。 实现原理: Netroid自启动后创建由开发者指定的线程数目,每个线程由 BlockingQueue 进行阻塞。当有新的请求进入队列时,其中一个线程将被唤醒并获得请求对象, 然后开始执行,执行完成后线程重新回到阻塞状态,等待下一次唤醒。Netroid实现了强大的状态回调接口在请求执行过程中进行通知, 包括开始、完成、成功、重试、失败、取消、执行网络操作、应用缓存、下载进度九种状态回调,开发者可方便地获取请求的执行情况,对用户进行友好提醒。 使用方法 Netroid库的主入口是 RequestQueue ,通常情况下在Application.onCreate()方法中初始化,作为全局单例对象存放: Network network = new BasicNetwork(new HurlStack(Const.USER_AGENT, null), HTTP.UTF_8); // RequestQueue在创建时可指定使用HttpURLConnection还是HttpClient来执行请求,同时可指定硬盘缓存的目录位置及上限大小

【Android】android Volley完全解析(一)

放肆的年华 提交于 2019-12-03 15:05:52
前言 Volley是一个由Google官方推出的网络通信库,它使得Android进行网络请求时更加方便、快速、健壮,同时对网络图片加载也提供了良好的支持。 不过HttpURLConnection和HttpClient的用法还是稍微有些复杂的,如果不进行适当封装的话,很容易就会写出不少重复代码。于是乎,一些Android网络通信框架也就应运而生,比如说AsyncHttpClient,它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作了。再比如Universal-Image-Loader,它使得在界面上显示网络图片的操作变得极度简单,开发者不用关心如何从网络上获取图片,也不用关心开启线程、回收图片资源等细节,Universal-Image-Loader已经把一切都做好了。 Android开发团队也是意识到了有必要将HTTP的通信操作再进行简单化,于是在2013年Google I/O大会上推出了一个新的网络通信框架——Volley。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整

Android Volley Https SSL self signed and Google Maps API

匿名 (未验证) 提交于 2019-12-03 08:57:35
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: We are working with Android Volley and using a self certificated SSL that works correctly, but now we want to implement Google Maps and it doesn't work; it just doesn't throws any error, it just shows a greyed out screen This is our implementation of Volley: public class AppSingleton { private static AppSingleton mAppSingletonInstance ; private RequestQueue mRequestQueue ; private static Context mContext ; private AppSingleton ( Context context ) { mContext = context ; mRequestQueue = getRequestQueue (); } public static