狂草 2019-06-20
本文参考了郭霖大神的博客,详情请看:
http://blog.csdn.net/guolin_blog/article/details/17482095
(现在使用可以直接导入依赖:compile 'com.android.volley:volley:1.0.0'
,参考文章:https://developer.android.com...
使用Volley之前,第一步当然是下载volley的jar包:
git clone https://android.googlesource.com/platform/frameworks/volley
这里我在下clone volley的时候出了点问题,git总是显示:
Cloning into 'volley'...
fatal: unable to access 'https://android.googlesource....': Failed to connect to android.googlesource.com port 443: Timed out
这里对我有用的是这篇文章:http://www.itdadao.com/articl...
这里通过执行一个命令:
git config --global http.proxy "localhost:8787"
原因:本人使用的是Lantern翻墙工具,而蓝灯默认会在【本机地址】上开启一个 HTTP 代理的端口,端口号是 8787
注意:不同版本的蓝灯好像端口号也不一样,要注意,最新的版本的端口号已经被改变了。
我们需要新建一个moduleu,具体如下图:
1.
2.点击新建后,选择Import Gradle Project
点击next
3.选择路径
这里我们选择volly安装的根路径,注意:如果选择上一层路径也会出错(截图中的错误是因为在写该文章之前已经导入过了,所以会警告)
3.在我们的setting.gradle中看看是否有这句话,如果没有就加上(一般会自动生成)
include ':app', ':volley'
4.在build.gradle中添加依赖:
`compile project(':volley')`
注意,是在app的build.gradle那个中,不要搞错了
主要有三种Request:StringRequest、JsonRequest、JsonArrayRequest
1.StringRequest的用法
首先需要获取到一个RequestQueue对象,可以调用如下方法获取到:
RequestQueue mQueue = Volley.newRequestQueue(context); 接下来我们就需要获取一个StringRequest对象了,下面贴出具体代码,这里是我们定义的一个方法: public void fromeStringRequest(){ String url = "http://www.baidu.com"; //这里我们选择3个参数的构造方法,默认采用get方式获取数据, // 在4个参数的构造方法中我们可以指定请求的方法类型 StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { //这里是我们请求成功时候的回调方法,可以在其中获取返回的String类型的数据 @Override public void onResponse(String response) { //这里我们只是简单的在Toast中显示出来 //Toast.makeText(MainActivity.this,response.toString(),Toast.LENGTH_LONG).show(); tv.setText(response.toString()); } }, new Response.ErrorListener() { //这里是我们请求成功时候的回调方法 @Override public void onErrorResponse(VolleyError error) { //请求失败的话我们就显示出出错信息 // Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show(); tv.setText(error.toString()); } }); //最后不要忘了将stringRequest添加进请求队列requestQueue中(也不要忘记添加联网权限) requestQueue.add(stringRequest); }
2.JsonRequest的用法
其实JsonRequest、JsonArrayRequest的用法与此基本相同,只是返回的数据类型不同,后两个否会的分别是JSONObject和JSONArraySON而已