Android Volley 的基本使用/设置HTTP请求参数、apikey

最近在做一个Android的新闻客户端,感觉收获颇丰。

这里分享一下Volley获取网络数据的方法

Volley是Google I/O 2013推出的网络通信库,它的拓展性很强,使用它能使代码变得更健壮,Volley在提供了高性能网络通讯功能的同时,对网络图片加载也提供了良好的支持

下面主要介绍一下Volley的StringRequest的使用方法

简单的写法是这样的:

 1 /**
 2      * 获取网络数据 新闻卡片
 3      */
 4     private void getNewsData(String NewsType) {
 5         String URL = NewsType;//国内新闻列表
 6         StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
 7             Gson gson = new Gson();
 8
 9             @Override
10             public void onResponse(String response) {
11                 //得到网络发送过来的字符串要做的操作,一般是转换为Json等操作
12             }
13         }, new Response.ErrorListener() {
14
15             @Override
16             public void onErrorResponse(VolleyError error) {
17 //请求失败时要做的操作
18             }
19         }) {
20
21         mQueue.add(stringRequest);//加入到请求队列,不然是不会发送请求的
22         mQueue.start();
23     }

之前就犯了没有写add()的错误,中间的onresponse便不会执行,希望引以为戒

下面来介绍一下在Volley怎样添加请求参数,如apikey httpArg等

需要重写getHeaders方法:

1  @Override
2     public Map<String, String> getHeaders() throws AuthFailureError
3     {
4     Map<String, String> headers = new HashMap<String, String>();
5     headers.put("Charset", "UTF-8");
6     headers.put("Content-Type", "application/x-javascript");
7     headers.put("Accept-Encoding", "gzip,deflate");
8     return headers;
9     }

可以在这里面添加你想要的任何参数

下面给出一个范例:

 1 /**
 2      * 获取网络数据 新闻卡片
 3      */
 4     private void getNewsData(String NewsType) {
 5         String URL = NewsType;//国内新闻列表
 6         StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
 7             Gson gson = new Gson();
 8
 9             @Override
10             public void onResponse(String response) {
11                 NewsListResponseJson newsListJsonObject = gson.fromJson(response, NewsListResponseJson.class);
12                 newsItems = newsListJsonObject.getData();
13             }
14         }, new Response.ErrorListener() {
15
16             @Override
17             public void onErrorResponse(VolleyError error) {
18
19             }
20         }) {
21             @Override
22             public Map<String, String> getHeaders() throws AuthFailureError {
23                 Map<String, String> headers = new HashMap<>();
24                 headers.put("apikey", Constant.APIKET);
25                 return headers;
26             }
27         };
28         mQueue.add(stringRequest);
29         mQueue.start();
30     }

注:(下图的图片是通过picasso获取的,使用方法请参考博主的下一篇文章)

就这么简单,并不要像一般情况下自己写线程、和各种重复劳动

效果图:

时间: 2024-11-18 12:14:14

Android Volley 的基本使用/设置HTTP请求参数、apikey的相关文章

利用volley进行http设置请求头、超时及请求参数设置(post)

这里以post请求说明,get请求相似设置请求头及超时. 1.自定义request,继承com.android.volley.Request 2.构造方法实现(basecallback,为自定义的监听,实现Response.Listener,ErrorListener接口)--post请求 public BaseRequest(String url,String params, BaseCallback<T> callback)      {   super(Method.POST, url,

android 设置网络请求超时

UI界面更新必须在ui线程中 不能在ruanable线程中操作ui 可以发送消息利用handler来更新ui    private void load() {        LoadDate load = new LoadDate();        load.execute("http://h.hiphotos.baidu.com/image/w%3D310/sign=1bc9c0da38292df597c3aa148c305ce2/c83d70cf3bc79f3d77fbe1c5b8a1cd

android volley 发送 POST 请求

Map<String, String> params = new HashMap<String, String>(); params.put("fromUser", "lesliefang"); params.put("toUser", "xiaojun"); JsonObjectRequest newMissRequest = new JsonObjectRequest( Request.Method

基于Android Volley的网络请求工具

基于Android Volley的网络请求工具. 一.说明 AndroidVolley,Android Volley核心库及扩展工程.AndroidVolleySample,网络请求工具示例工程.Release,jar包.直接下载 二.Volley基本处理流程: 1.应用初始化Volley.2.Volley创建一个RequestQueue.NetworkDispatcher组及Network.3.RequestQueue即一个Request队列,RequestQueue会创建一个Executor

Android Volley解析(一)之GET、POST请求篇

一. Volley 的地位 自2013年Google I/O 大会上,Google 推出 Volley 之后,一直到至今,由于其使用简单.代码轻量.通信速度快.并发量大等特点,倍受开发者们的青睐. 先看两张图,让图片告诉我们 Volley 的用处: 第一张 Volley 的经典图 通过上图,我们可以发现 Volley适合网络通信频繁操作,并能同时实现多个网络通信. 第二张图 我们在以前在 ListView 的 item 中如果有网络请求,一般都是通过Task 异步任务来完成,并在完成之后通知 A

Android Volley入门到精通:定制自己的Request

经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest.JsonRequest.ImageRequest等.其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest.JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片. 可是Volley提供给我们的Request类型就只有这么多,而我们都知道,在网络上传输的数据通常

Android Volley网络通讯框架(Google)

Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v=yhv8l9F44qo&feature=player_embedded 1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Go

Android Volley分析(二)——实现

在Android Volley分析(一)--结构中主要分析了Volley的基本组件和框架结构,组件主要是定义的接口,也就是说我们可以实现这些接口来定制自己的Volley版本,比如NetWork.Cache.Request等等.Android Volley在com.android.volley.toolbox下已经做了这些工作,下面就看看这些具体的实现内容 先看一个Volley使用的例子 final TextView mTextView = (TextView) findViewById(R.id

Android Volley入门到精通:使用Volley加载网络图片

在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完全解析(一),初识Volley的基本用法. 在上篇文章中有提到过,Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架.我们都知道,Universal-Image-Loader具备非常强大的加载网络图片的功能,而使用Volley,我们