Volley+Okhttp使用心得
来源:互联网 发布:sci-hub 知乎 编辑:程序博客网 时间:2024/05/16 07:31
介绍
- 首先是用Retrofit2.0文档太少了,文档根本没有跟上,加上Kotlin的缘故,让我放弃了。
- 之所以选择Retrofit主要是看中他可以使用Okhttp使用网络层,Okhttp是一款高效的网络请求框架
- 搜索了一下发现Volley也可以使用Okhttp来作为传输层,遂用之
准备
首先需要引入依赖
compile 'com.mcxiaoke.volley:library:1.0.19' compile 'com.squareup.okhttp:okhttp:2.5.0' compile 'com.squareup.okhttp:okhttp-urlconnection: 2.5.0'
接着需要一个类来继承重写HurlStack
import com.android.volley.toolbox.HurlStack; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.OkUrlFactory; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; /** * Created by apple on 15/11/12. */ public class OkHttpStack extends HurlStack { private final OkUrlFactory okUrlFactory; public OkHttpStack() { this(new OkUrlFactory(new OkHttpClient())); } public OkHttpStack(OkUrlFactory okUrlFactory) { if (okUrlFactory == null) { throw new NullPointerException("Client must not be null."); } this.okUrlFactory = okUrlFactory; } @Override protected HttpURLConnection createConnection(URL url) throws IOException { return okUrlFactory.open(url); } }
重写这个主要为了替换原本的Http加载方式,由于Okhttp升级到了2.0原本网上的client.open()方法并不起作用,所以得引入依赖:
compile 'com.squareup.okhttp:okhttp-urlconnection: 2.5.0'
接着需要在queue初始化的时候调用OkHttpStack:
volley = Volley.newRequestQueue(this, new OkHttpStack());
这样就完成了,之后调用这个volley对象即可。
使用Volley
这里只记录常用的StringRequest的使用方法,因为很多网络请求都是使用请求回来字符串,使用Gson转换为对象。
新建一个StringRequest
StringRequest request=new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() { @Override public void onResponse(String response) { System.out.println(response); } },null);mVolley.add(request);
StringRequest的参数说明。第一个参数是请求方法,第二个参数是请求的URL,第三个是请求成功的监听,第四个是请求失败的监听,由于偷懒我并没有写,直接使用了null。
遇到了带参数的post请求怎么办?
可以这样写:
StringRequest request = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() { @Override public void onResponse(String response) { System.out.println(response); } }, null) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<>(); map.put("key", "value"); map.put("key1", "value1"); return map; } }; mVolley.add(request);
Volley还有很多请求方式,不过由于StingRequest最常用,所以其它的可以通过搜索引擎轻易搜到。
0 0
- Volley+Okhttp使用心得
- Android 使用OkHttp扩展Volley
- Android 使用OkHttp扩展Volley
- Android OkHttp的使用心得
- volley+okhttp
- 使用OkHttp作为Volley的传输
- volley使用心得(1)
- Android okhttp + rxJava + retorfit2使用心得
- 使用Volley+OkHttp+Gson加速Android网络开发
- RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp
- 网络请求OkHttp,Volley,Retrofit 使用的比较
- Volley与Retrofit(OKHttp)使用与区别
- RxVolley使用文档—— RxVolley = Volley + RxJava + OkHttp
- Android网络okhttp/Volley
- 基于okhttp的Volley
- Volley+OkHttp的整合
- NoHttp,volley,okhttp介绍
- 关于okhttp和volley
- Linux下搭建Android开发环境及Android真机调试
- SurfaceView的操作类
- 搞定NaN,靠这一篇就够了
- Mac Adobe CS6 完美破解激活(免替换文件/可更新)详细图文教程
- 代理模式Proxy Pattern
- Volley+Okhttp使用心得
- Spring MVC 框架搭建及详解
- Basic jpa and hibernate concepts
- 中午试打了Stiga的碳素145
- 学习封装双击返回键退出
- ftp上传图片
- linux安装配置jdk1.8
- Android RSA加密
- lua的ipairs与pairs的区别