开发资料
查阅了一些资料,发现很多人总结得很好,比如介绍Volley基本用法的文章:
下面这两篇文章对Volley的总结堪称手册版,所以直接引用过来了
感谢以上文章的作者。下面是我通过上面的文章自己撸的一个小demo,非常简单,但是对我有参考意义,所以贴出来。配置依赖/引入jar包
implementation files('libs/volley.jar')或者
compile 'com.mcxiaoke.volley:library:1.0.19'
使用Volley构造工具类
package com.xzy.volleydemo; import android.util.Log; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import org.json.JSONObject; /** * Function:volley工具类 * Created by xuzhuyun on 2018/1/9. */ public class HttpUtils { private static final String TAG = "HttpUtils"; /** * 声明RequestQueue对象 */ static RequestQueue mQueue = null; /** * 声明StringRequest对象 */ static StringRequest stringRequest = null; static JsonObjectRequest mJsonObjectRequest = null; /** * 1、获取RequestQueue对象 */ public static RequestQueue getRequestQueue() { if (mQueue == null) { mQueue = Volley.newRequestQueue(DemoApp.getInstance()); } return mQueue; } /** * 2.获取StringRequest对象 * * @param url 请求的url * @return StringRequest */ public static StringRequest getStringRequest(String url) { return stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d(TAG, response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, error.getMessage(), error); } }); } /** * 获取JsonObjectRequest对象 * * @param url 请求url * @return JsonObjectRequest */ public static JsonObjectRequest getJsonObjectRequest(String url) { return mJsonObjectRequest = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("JsonObjectRequest", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.e("JsonObjectRequest", "onErrorResponse: " + volleyError.getMessage()); } }); } }
调用
package com.xzy.volleydemo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; /** * Volley * 可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信, * 也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整, * 它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作, * 比如说下载文件等,Volley的表现就会非常糟糕。 */ public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.tv_test); /** * 使用http请求url * */ HttpUtils.getRequestQueue().add(HttpUtils.getStringRequest("https://www.baidu.com")); /** * 请求一段jsonObject数据 * */ HttpUtils.getRequestQueue().add(HttpUtils.getJsonObjectRequest("http://www.weather.com.cn/data/sk/101010100.html")); } }