Volley框架学习
---恢复内容开始---
Volley优缺点:除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
在对服务器进行请求的时候有三种对象可以选择:
StringRequest 这种情况的应用场景是不知道是下面哪个对象传进来的时候用。
JsonObjectRequest 确定是JsonObjectRequest 使用
JsonArrayRequest 确定是JsonArrayRequest 使用
---------------------------------------------------------
使用Volley的步骤
1. 创建一个RequestQueue对象。
package com.example.voll;import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley;import android.app.Application;public class MyApplication extends Application {// 建立队列private static RequestQueue queue;// 程序主入口 @Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();queue = Volley.newRequestQueue(getApplicationContext());}// 静态方法返回队列public static RequestQueue getHttpQueue() {return queue;} }
然后在清单文件进行配置name
<applicationandroid:name="com.example.voll.MyApplication"android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" >
2. 创建一个StringRequest对象。
3. 将StringRequest对象添加到RequestQueue里面。
// 添加到tag和队列request.setTag("getjsonMethod");MyApplication.getHttpQueue().add(request);
--------------------------------------------------------------------------------------------------------------------------------------------------------
我们来看第二步的方式,
StringRequest 的get请求
String url = "http://192.168.0.103:8080/json/servlet/JsonAction?flag=listmap";StringRequest request = new StringRequest(Method.GET, url,// 请求成功调用new Listener<String>() {@Overridepublic void onResponse(String arg0) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, arg0, 0).show();}},// 请求失败调用new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError arg0) {Toast.makeText(MainActivity.this,"错误信息" + arg0.toString(), 0).show();}});// 添加到tag和队列request.setTag("getMethod");MyApplication.getHttpQueue().add(request);
StringRequest 的post请求
private void volleyStringPost() {String url = "http://192.168.0.110:8080/json/servlet/JsonAction";StringRequest stringPost = new StringRequest(Method.POST, url,new Listener<String>() {@Overridepublic void onResponse(String arg0) {Toast.makeText(MainActivity.this, arg0, 0).show();}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError arg0) {Toast.makeText(MainActivity.this, arg0.toString(), 0).show();}}) {// 因为post请求不能在url里直接写出,所以这里要写这个方法来获取参数 @Overrideprotected Map<String, String> getParams() throws AuthFailureError {// TODO Auto-generated method stubMap<String, String> map = new HashMap<String, String>();map.put("flag", "listmap");return map;}};stringPost.setTag("StringPost");MyApplication.getHttpQueue().add(stringPost);}
JsonObjectRequest get请求
private void volleyJsonGet() {String url = "http://192.168.0.103:8080/json/servlet/JsonAction?flag=listmap";JsonObjectRequest request = new JsonObjectRequest(Method.GET, url,null, new Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject arg0) {// TODO Auto-generated method stubtry {JSONArray jsonArray = arg0.getJSONArray("listmap");Toast.makeText(MainActivity.this,jsonArray.get(0).toString(), 0).show();} catch (JSONException e) {// TODO Auto-generated catch block e.printStackTrace();}}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError arg0) {// TODO Auto-generated method stub }});// 添加到tag和队列request.setTag("getjsonMethod");MyApplication.getHttpQueue().add(request);}
JsonObjectRequest post请求
转载于:https://www.cnblogs.com/84126858jmz/p/5126994.html
Volley框架学习相关推荐
- 从源码角度学习Volley框架
转载请标明出处:http://blog.csdn.net/newhope1106/article/details/53615398 虽然网上有很多文章是分析Volley框架的,不过博客的作用,一个是让 ...
- Android Volley框架的使用(二)
此博文源码下载地址 https://github.com/Javen205/VolleyDemo.git 使用请求队列RequestQueue Volley中的Request都需要添加到Reque ...
- volley 框架的使用
由于最近公司的项目已经结束,所以本菜鸟有大把的时间去总结和学习一些东西,最近在了解一个volley框架,是一个求情网络数据跟网络图片的框架,优点呢有 JSON,图像等的异步下载: 网络请求的排序(sc ...
- Transmitting Network Data Using Volley(使用Volley框架传输网络数据)
前面看了某大神关于Volley框架的文章,难怪说不要国内的技术文章,看了Google的官方文档,我才知道,心目中的大神还是有很多不足的地方.所以,对着英文,自己学习下. Volley is an HT ...
- Volley框架简介
一.引言 虽然网上已经有很多大神.高手都写过了类似的帖子,但作为新人,必须要走模仿的道路,再考虑超越,因此学习大神的笔记,记录自己的理解,是一个菜鸟走向成功的必经之路啊.如签名所言,记录自己摸爬滚打的 ...
- jQuery框架学习第二天:jQuery中万能的选择器
jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...
- ssm框架requestmapping找不到_框架学习,就是介么简单
框架学习 程序员凯小白 最近实训ssm框架,SSM框架,是Spring + Spring MVC + MyBatis的缩写,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大 ...
- rose框架学习总结
rose框架学习总结 rose框架为paoding rose框架 具体可见https://code.google.com/p/paoding-rose/ 1 对rose框架的整体认识 1.1B/S ...
- Hadoop学习笔记—18.Sqoop框架学习
Hadoop学习笔记-18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据 ...
最新文章
- python网络爬虫---selenium的使用
- Nginx如何反向代理网站和设置虚拟主机
- Ubuntu 开机自动执行脚本
- Android图片粘上后仍错误,android – 在Activity被销毁后,ImageView上的图像丢失了
- js 技巧杂引(转)
- java hotspot 是什么_什么是HotSpot
- 没有android:padding属性,android自定义无上下padding的textview
- python专业方向 | 文本相似度计算
- iOS开发值多线程简单介绍
- dnf服务器运行库,游戏运行库|3DM游戏必备运行库合集安装包(史上最全) V3.0
- mysql 查询替换语句_MYSQL查询字符替换sql语句
- 施耐德 m340 编程手册_施耐德电气自动化软件汇总
- Python实现基于卷积神经网络的LSB算法进行信息隐藏隐写分析
- rpm -ivh *rpm 是什么意思
- 旭阳集团锚定“2025” 企业卓越运营让信息化来帮忙
- 云编译DSM引导(学习记录)
- OCR论文阅读笔记01--multi-oriented scence text detection via corner localization and regin segmentation
- Java迷你共享单车系统(面向对象作业)
- cenos需要注意的小功能
- MeEdu开源网校系统-手动安装教程(完整版)
热门文章
- (八)java版spring cloud+spring boot 社交电子商务平台-消息总线(Spring Cloud Bus)
- ORACLE同步数据库之,自动生成sequence 文件
- 《拥抱变化——社交网络时代的企业转型之道》一构筑社会信任
- day22 案例 发送邮箱激活码 购物车 分析
- javascript小实例,PC网页里的拖拽(转)
- 图像滤波与OpenCV中的图像平滑处理
- vim学习第2篇:配置自己的vimrc
- iphone popViewControllerAnimated后刷新原先的表格
- Google 选择 Jetty 放弃 Tomcat
- 互联网公益平台米多乐获近千万天使轮融资,熊猫资本投资...