Android-Volley框架中的get和post方式
2016-05-05 15:21
393 查看
2013年Google在 I/O大会上发布了Volley框架,它是Android平台上的开源网络通信库,封装了Http网络请求,异步任务,缓存,图片下载等功能。特点是能使网络通信更简单,更快速,更稳定。尤其适合处理数据量不大,但是网络通信频繁的场景。
使用StringRequest进行网络请求的实现过程如下:
创建RequestQueue请求队列
创建StringRequest对象,构造函数说明如下
或者
将StringRequest对象添加到请求队列中
主函数代码
Volley中的post方式需要先重写StringRequest类
使用StringRequest进行网络请求的实现过程如下:
创建RequestQueue请求队列
RequestQueue requestQueue = Volley.newRequestQueue(this);
创建StringRequest对象,构造函数说明如下
StringRequest(int method, //请求方式, 0:GET, 1:POST默认为Get String url, //请求网址 Response.Listener listener, //响应成功监听接口(相当于onPostExecute) Response.ErrorListener errorListener)//响应错误监听接口
或者
StringRequest(String url, Response.Listener listener, Response.ErrorListener errorListener)
将StringRequest对象添加到请求队列中
requestQueue.add(StringRequest);
主函数代码
public class VolleyStringRequestActivity extends AppCompatActivity { private RequestQueue queue; private Button bt1,bt2; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_volley_string_request); tv= (TextView) findViewById(R.id.tv1); bt1= (Button) findViewById(R.id.bt1); bt2= (Button) findViewById(R.id.bt2); queue= Volley.newRequestQueue(this); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url= UrlManager.BASE_URL+UrlManager.GSON_URL; stringRequestGet(url); } }); bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url=UrlManager.BASE_URL+UrlManager.MAIN_VIEW; stringRequestPost(url); } }); } public void stringRequestGet(String url){ StringRequest sr=new StringRequest(url, new Response.Listener<String>() { //响应成功监听接口 @Override public void onResponse(String s) { //解析JSON数据 // Toast.makeText(VolleyStringRequestActivity.this, ""+s, Toast.LENGTH_SHORT).show(); Log.d("====",s); //Log无用? tv.setText(s); } }, new Response.ErrorListener() { //响应错误监听接口 @Override public void onErrorResponse(VolleyError volleyError) { //提示网络异常 } }); queue.add(sr); } public void stringRequestPost(String url){ StringPostRequest spr=new StringPostRequest(url, new Response.Listener<String>() { @Override public void onResponse(String s) { tv.setText(s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }); spr.putValue("option","getUser"); spr.putValue("uName","jerehedu"); queue.add(spr); } }
Volley中的post方式需要先重写StringRequest类
public class StringPostRequest extends StringRequest{ private Map map; public StringPostRequest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) { super(Method.POST,url, listener, errorListener); map=new HashMap(); } public void putValue(String key,String value){ map.put(key,value); } @Override protected Map<String, String> getParams() throws AuthFailureError { return map; } }
相关文章推荐
- androidl开机动画流程
- android4.4自己动手连接wifi热点以及创建wifi热点
- Android Studio 项目中,哪些文件应该忽略而不提交到svn的服务器中?
- Android性能优化典范 - 第5季
- android上拉加载+下拉刷新
- 第一次使用Android Studio时你应该知道的一切配置
- Androidstdio代码风格的设置
- Android Studio注释模板
- 转 Android—JNI调用简单实例解析
- Android相册中获取图片和路径
- android自定义圆角Dialog
- Android中什么是anr ? 原因 or 解决方法
- Android Studio单元测试入门
- Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
- android:layout_gravity和android:gravity属性的区别
- android在listview中放入从sdcard读取的bitmap
- Android计时器
- Android Q&A | Incorrect line ending: found carriage return (\r) without corresponding newline (\n)
- android从sdcard中读取bitmap
- android studio使用小技巧