一、说明
Android network manager based on Android Volley, JSON, XML, Map, RequestMap(with file) support.
AndroidVolley,Android Volley核心库及扩展工程。
AndroidVolleySample,网络请求工具示例工程。
Release,AndroidVolley jar包。
二、Volley基本处理流程
1、应用初始化Volley。
2、Volley创建一个RequestQueue、NetworkDispatcher组及Network。
3、RequestQueue即一个Request队列,RequestQueue会创建一个ExecutorDelivery。
4、NetworkDispatcher实质是Thread,从RequestQueue中取Request,通过Network加以执行。
5、Network负责网络请求处理,具体过程交给HttpStack处理。
6、HttpStack分HttpURLConnection(SDK_INT>=9)与HttpClient与两种方式。
7、ExecutorDelivery负责处理请求结果,并与主线程进行交互。
8、Volley在上述2-7的基础上增加了Cache等附加处理环节。
三、网络请求工具
在AndroidVolley基础上扩展了com.android.http包,增加了ByteArrayRequest及RequestManager,方便JSON、XML、Map()、及RequestMap()的网络请求。
1.初始化RequestManager
public class VolleyApplication extends Application { @Override public void onCreate() { super.onCreate(); RequestManager.getInstance().init(this);//初始化工具 } @Override public void onTerminate() { super.onTerminate(); } }
2.使用RequestManager
public class MainActivity extends Activity { private static final String OUT_FILE = "upload.txt"; private static final String OUT_DATA = "sadf464764sdf3ds1f3adsf789213557r12-34912-482130487321gjsaldfalfu2390q3rtheslafkhsdafhreasof"; private static final String POST_URL = "http://allthelucky.ap01.aws.af.cm/memoServer"; private static final String POST_JSON = "{\"action\":\"test\", \"info\":\"hello world\"}"; private static final String GET_URL = "https://raw.githubusercontent.com/panxw/android-volley-manager/master/test.txt"; private static final String UPLOAD_URL = "http://www.splashpadmobile.com/upload.php"; private LoadControler mLoadControler = null; private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.mImageView = (ImageView) findViewById(R.id.imageView1); this.testPost(); this.testGet(); this.testFileUpload(); this.testImageLoader(); } private void testPost() { mLoadControler = RequestManager.getInstance().post(POST_URL, POST_JSON, requestListener, 0); } private void testGet() { mLoadControler = RequestManager.getInstance().get(GET_URL, requestListener, 1); } private void testFileUpload() { MainActivity.prepareFile(this); RequestMap params = new RequestMap(); File uploadFile = new File(this.getFilesDir(), OUT_FILE); params.put("uploadedfile", uploadFile); params.put("share", "1"); mLoadControler = RequestManager.getInstance().post(UPLOAD_URL, params, requestListener, 2); } private void testImageLoader() { NetworkApplication.getImageLoader().get("http://www.baidu.com/img/bdlogo.png", new ImageListener() { @Override public void onErrorResponse(VolleyError error) { System.out.println("Image onErrorResponse"); } @Override public void onResponse(ImageContainer response, boolean isImmediate) { System.out.println("Image onResponse"); if (response != null && response.getBitmap() != null) { mImageView.setImageBitmap(response.getBitmap()); } } }); } private RequestListener requestListener = new RequestListener() { @Override public void onSuccess(String response, String url, int actionId) { System.out.println("actionId:" + actionId + ", OnSucess!\n" + response); } @Override public void onError(String errorMsg, String url, int actionId) { System.out.println("actionId:" + actionId + ", onError!\n" + errorMsg); } @Override public void onRequest() { System.out.println("request send..."); } }; @Override public void onBackPressed() { super.onBackPressed(); if (mLoadControler != null) { mLoadControler.cancel(); } } private static void prepareFile(Context context) { FileOutputStream fos = null; try { fos = context.openFileOutput(OUT_FILE, Context.MODE_PRIVATE); try { fos.write(OUT_DATA.getBytes()); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
android-volley-manager
volley是一个开源的http库,它能帮助app方便快速的执行网络操作。它能够使开发者更专注地集中于功能逻辑上。Volley不适合用来下载大的数据文件。因为Volley会在解析的过程中保留持有所有的响应数据在内存中。对于下载大量的数据操作,请考虑使用DownloadManager。volley可以很方便地从google代码仓库得到:https://android.googlesource.com
加载图片的两种方法 1 //Volley加载图片 ImageLoader使用法 2 ImageLoader imageLoader = new ImageLoader(requestQueue,new ImageLoood()); 3 ImageLoader.ImageListener imageListener = imageLoader.getImageListene
网络框架-Volley Volley概述: Volley是Google 2013年I/O大会推出的针对Android的HTTP网络请求框架,让网络请求更简单,更快。 特点: 自动调度网络请求 支持并发网络连接 支持标准的HTTP缓存协议(由服务器来决定是否缓存数据) 支持请求优先级设置 支持取消单个或多个请求 易于定制,扩展性强。比如Retry&Backoff机制 强大的网络请求能力让你轻松的发
Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster. Volley is available through the open AOSP repository. Volley offers the following benefits: Automa
7.5Volley网络库 7.5.1简介 Volley是Google官方提供的开源网络库,在Android系统中也使用了这个网络库。 Volley是对网络功能的封装,默认根据 Android 系统版本使用不同的 Http 传输协议实现:在 Android2.3及以上使用 HurlStack传输协议实现, 在2.3以下使用 HttpClientStack传输协议实现。使用者也可以自己设置其中使用的传
Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity的显示之ViewRootImpl初探 Activity的显示之Window和View Android系统的创世之初以及Activity的生命周期 图解Android事件分发机制(深入底层源码) Android 自定义View的各种姿势2 Android 内存泄漏分析与解决 Androi
[我正在使用PHP JSON Volley来验证我的登录活动。目前,我正在提供localhost和IP地址来测试我的应用程序(请在下面找到我的代码)。但是,当生成APK时,应提供什么URL?请指导。public class LoginActivitywithConnection extends Activity { private static final String TAG = "LoginA
android volley 实现上传文件功能 Volley不解释了吧, android 官方的一个网络请求库. 源代码的地址在: git@github.com:com314159/VolleyMultiPartRequest.git 上面的是ssh 下面的是http地址 https://github.com/com314159/VolleyMultiPartRequest 是根据 https:/
README.md Volley-demo An demonstration of Volley - HTTP library announced by google in I/O 2013. Play Store Link for demo download https://play.google.com/store/apps/details?id=com.mani.volleydemo Wh
一、Guava Google的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVA代码更加优雅,更加简洁. 功能模块: 基本工具 [Basic uti
我在使用Volley的RequestFuture类时遇到了一个问题。实际上,它只是停在;在下面RequestFuture类中的函数中,并不会像我认为的那样被或唤醒。 这就是我试图把上面这一切称为的方式。 与
我是Android Studio的新手,我想将Volley库用于我的应用程序,但我无法将源添加为Android Studio中的库。 我在网上搜索过,但什么也没找到。Everywhere据说是一个图书馆,但我不知道怎么做。 我从git存储库获得了截击源: 但是我不知道如何将它作为库添加到我的项目中。
我尝试对http请求使用volley。我在postman上尝试了一个请求,响应标题如下: null 为什么它会改变内容?如何获取和?
怎么啦?如何添加not.jar库?
问题内容: 我想做的是从而不是从Volley库中使用一些数据。 以下是用于从服务器中获取JSON对象的代码。 我试图改变到后改为。但这并没有解决。 问题答案: 中的url 不是可选的,并且JSONObject参数用于将带有请求的参数发布到url。 从文档中:http : //afzaln.com/volley/com/android/volley/toolbox/JsonObjectRequest
https://jhookcrochet.eu/?_format=json 对此的任何帮助都将非常感谢!我想出的代码是: