Android中使用Volley开源库进行Http网络请求(GET方式)
2016-01-28 16:46
796 查看
在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据。代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还不是很了解的同学来说,理解可能会有一定的难度。
本篇文章将会讨论使用开源库Volley进行网络的GET请求。实现结果同之前程序,只是代码将会大大简化。Volley是Google官方发布的Android平台上的网络通信库。以前的网络请求,要考虑开启线程、内存泄露、性能等复杂的问题。但是Volley框架已经帮我们把这些问题处理好了,对外提供了相应的完善的请求API,我们只需要按照请求使用即可。能使网络通信更快,更简单,更健壮。
这个例子中向聚合数据的手机归属地API发起GET请求,返回JSON数据。调用接口可以参考聚合数据官网。
废话不说,直接上代码,最后的结果显示在TextView上:
[java] view
plain copy
print?
public class MainActivity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.id_text);
getVolley();
}
public void getVolley() {
String url = "http://apis.juhe.cn/mobile/get?phone=13429667914&key=9719c91bd4ac2647c67c6cd067b5cb8e";//调用接口;
/**
* 开始进行网络请求,设置相应的请求参数;
*/
StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {
@Override
public void onResponse(String result) {//请求成功时回调onResponse();
text.append(result);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {//请求成功时回调onErrorResponse();
text.append("不能成功从服务器获取消息");
}
});
Volley.newRequestQueue(getApplicationContext()).add(request);//把请求放入到请求队列中;
}
}
运行成功后,效果如下:
<img src="http://img.blog.csdn.net/20150714232653456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />。
至此,已经实现使用Volley向服务器请求数据。注意,所有涉及网络的操作必须要在AndroidMenifest.xml中加入Internet权限:<pre name="code" class="html"> <uses-permission android:name="android.permission.INTERNET"></uses-permission>。
附Volley库下载链接:http://pan.baidu.com/s/1sjoQgHZ
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
本篇文章将会讨论使用开源库Volley进行网络的GET请求。实现结果同之前程序,只是代码将会大大简化。Volley是Google官方发布的Android平台上的网络通信库。以前的网络请求,要考虑开启线程、内存泄露、性能等复杂的问题。但是Volley框架已经帮我们把这些问题处理好了,对外提供了相应的完善的请求API,我们只需要按照请求使用即可。能使网络通信更快,更简单,更健壮。
这个例子中向聚合数据的手机归属地API发起GET请求,返回JSON数据。调用接口可以参考聚合数据官网。
废话不说,直接上代码,最后的结果显示在TextView上:
[java] view
plain copy
print?
public class MainActivity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.id_text);
getVolley();
}
public void getVolley() {
String url = "http://apis.juhe.cn/mobile/get?phone=13429667914&key=9719c91bd4ac2647c67c6cd067b5cb8e";//调用接口;
/**
* 开始进行网络请求,设置相应的请求参数;
*/
StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {
@Override
public void onResponse(String result) {//请求成功时回调onResponse();
text.append(result);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {//请求成功时回调onErrorResponse();
text.append("不能成功从服务器获取消息");
}
});
Volley.newRequestQueue(getApplicationContext()).add(request);//把请求放入到请求队列中;
}
}
运行成功后,效果如下:
<img src="http://img.blog.csdn.net/20150714232653456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />。
至此,已经实现使用Volley向服务器请求数据。注意,所有涉及网络的操作必须要在AndroidMenifest.xml中加入Internet权限:<pre name="code" class="html"> <uses-permission android:name="android.permission.INTERNET"></uses-permission>。
附Volley库下载链接:http://pan.baidu.com/s/1sjoQgHZ
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
相关文章推荐
- Android网络编程之Http请求服务器数据(POST方式)
- Android网络编程之Http请求服务器数据(GET方式)
- python下的tcp,udp服务器端,客户机端
- Java 获取http请求头内容
- 使用Fiddler——模拟Http请求及对android应用抓包
- 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
- linux下查看tcp连接的几种方式
- netcat简易版 加 tcp代理!
- CAS进行https到http的改造方案,结合cookie源码分析
- springmvc利用ResponseBody注解返回HTTP406问题
- 综述及分析:无线传感器网络的分析及启示
- 3. aroundme
- SOCKET_MTK网络通信流程图
- http协议学习系列
- android网络编程--HttpClient
- 网络---HTTP头信息解读
- 网络---HTTP头信息解读
- AFNetworkReachabilityManager检查网络状态
- Android之网络编程(五)简易联接框架
- c++工程中发送http请求的示例