volley使用 POST请求
来源:互联网 发布:不二咲千寻 知乎 编辑:程序博客网 时间:2024/05/30 22:52
在拜读网站各种关于volley的使用方法之后,我也开始自行测试其可行性。现将过程中遇到的问题一一展示,以防忘记,也希望对人有益
要使用volley请求数据,首先要创建一个requestQuene对象。
requestQuene是一个请求队列对象,该队列可以缓存所有的http请求,并且按照一些算法自动的发出这些请求。requestQuene的设计本来就是预防了高并发的,所以我们无需每个activity里面都创建一个请求队列。我个人是创建了一个MyApplication继承Application。在这里面创建队列,并给了一个静态的方法,返回值是队列对象。方便在其他界面直接获取。
1.新建一个StringRequest对象,并发起请求,在这里我使用的是百度api的免费接口
}
四:JsonObjectRequest——POST
要使用volley请求数据,首先要创建一个requestQuene对象。
requestQuene是一个请求队列对象,该队列可以缓存所有的http请求,并且按照一些算法自动的发出这些请求。requestQuene的设计本来就是预防了高并发的,所以我们无需每个activity里面都创建一个请求队列。我个人是创建了一个MyApplication继承Application。在这里面创建队列,并给了一个静态的方法,返回值是队列对象。方便在其他界面直接获取。
public class myApplication extends Application { public static RequestQueue quene; @Override public void onCreate() { super.onCreate(); quene= Volley.newRequestQueue(getApplicationContext()); } public static RequestQueue getQuene(){ return quene; }}一:StringRequest——GET
1.新建一个StringRequest对象,并发起请求,在这里我使用的是百度api的免费接口
2.把该请求添加到请求队列中
Header参数重写getHeaders方法,对应 connection.setRequestProperty("apikey", "您自己的apikey");
String server = "http://apis.baidu.com/txapi/weixin/wxhot";int num = 10;String url = String.format("%s?num=%s", server, num);Map<String, String> headerMap = new HashMap<String, String>();headerMap.put("apikey", "bc4dc2c212be5c32ec45539ecc2a0280");
<pre name="code" class="html"> StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String s) { Log.i(TAG,s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) {Log.i(TAG,s); }}){ @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headerMap = new HashMap<String, String>(); headerMap.put("apikey", "bc4dc2c212be5c32ec45539ecc2a0280");return headerMap; } };
<pre name="code" class="html">myApplication.getQuene().add(stringRequest);
二:StringRequest——POST
1.新建StringRequest请求
2.把请求添加到请求队列中
post请求与get请求稍有不同,在参数传递方面需要注意。不过volley也已经提供了getParams方法用于解决。本例中使用易源接口做测试,在百度api中尚未找到post请求(涉及到加密的一些东西,在源码中有展示)
private void Volley_StringRequest_post() { String url = "http://route.showapi.com/64-20"; String showapi_sign = "90b2a0426cc040258907aaf7aaba3e2f"; Map<String, String> map = new HashMap<String, String>(); map.put("showapi_appid", "11032"); map.put("showapi_timestamp", "" + System.currentTimeMillis()); map.put("showapi_sign_method", "md5"); String sign = CommUtil.createSign(map, showapi_sign); map.put("showapi_sign", sign); <pre name="code" class="html"> StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String s) { Log.i(TAG,s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.i(TAG,volleyError.toString); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { return map; } }; myApplication.getQuene().add(stringRequest);
}
三:JsonObjectRequest——GET
这个基本上和上面的方法类似,不细说,直接上代码
String server = "http://apis.baidu.com/txapi/weixin/wxhot";int num = 10;String url = String.format("%s?num=%s", server, num);Map<String, String> map = new HashMap<String, String>();map.put("apikey", "bc4dc2c212be5c32ec45539ecc2a0280");
<pre name="code" class="html">JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { Log.i(TAG,jsonObject.toString); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.i(TAG,volleyError.toString); } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { if (map==null){ return null; }else{ return map; } } }; myApplication.getQuene().add(jsonObjectRequest);
四:JsonObjectRequest——POST
jsonObjectRequest的post方法,坑比较多,碰巧该进的我都进了,在网上也找了各种解决方案,终于功夫不负有心人,找到一篇,同样将链接安利给各位
点击打开链接我的代码中也是使用作者的方法,我就不再这里粘贴了
我对方法进行了抽解,可以在activity中直接调用抽解方法进行操作,下载地址如下
0 0
- volley使用 POST请求
- Volley使用JsonObjectRequest发送Post请求失败
- Volley的使用(二) post请求
- Volley使用JsonObjectRequest发送Post请求失败
- Volley使用JsonObjectRequest发送Post请求失败
- volley Post网络请求
- Volley请求,GET+POST
- 使用Volley请求,获取POST请求cookie值
- 【Android网络请求】如何使用Volley发送POST请求
- 使用Volley框架的Post请求得到评论内容
- 高级部分 Volley框架的Post请求的使用
- Android使用volley发送带参数的post请求
- android studio使用volley发送post和get请求
- Volley的get和post请求方式的使用
- 使用Volley 网络请求post,json作为参数
- Volley 框架的 POST请求
- Volley框架GET POST请求
- volley网络请求,get/post
- iOS9—后台定位连接
- Mysql行锁与表锁
- 奇异值分解及几何意义
- 抉择
- 【应用篇】Activiti监听(抽象)与业务颗粒结合的简单应用(二)
- volley使用 POST请求
- Java排序算法
- Python 中的input(),raw_input()与zip()
- POJ 3685:Matrix 二分
- nginx源码分析—数组结构ngx_array_t
- Max Sum
- Android 创建android Splash界面以及避免app闪屏现象
- 【应用篇】Activiti外置表单实例demo(四)
- 叔本华名言的批注