android OkHttp的使用
来源:互联网 发布:mac如何使用搜狗 编辑:程序博客网 时间:2024/05/29 16:01
Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,
OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。
在gradle中添加依赖:
compile'com.squareup.okhttp:okhttp:2.4.0'
GET用法:
先声明变量:
privatefinal OkHttpClient mOkHttpClient = new OkHttpClient();
创建Request对象:
Request request = new Request.Builder()
.url(URL)
.build();
用client加载数据:
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//非UI线程
if(response.isSuccessful()){
Log.d("---", response.body().string());
}
}
});
接口回调回来的代码是在非UI线程的,因此如果有更新UI的操作记得用Handler或者其他方式。
POST请求:
添加请求参数:
RequestBody body = new FormBody.Builder()
.add("name", "wanwan")
.add("age", "18")
.build();
将请求参数和header添加到请求中:
Request request = new Request.Builder()
.url(Common.Str_URL)
.header("User-Agent", "OkHttp Headers.java")
.addHeader("Accept", "application/json; q=0.5")
.post(body)
.build();
client加载数据:
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//非UI线程
if(response.isSuccessful()){
Log.d("---", response.body().string());
}
}
});
使用缓存:
File sdcache = getExternalCacheDir();
int cacheSize = 10 * 1024 * 1024; // 10 MiB
mOkHttpClient.setCache(new Cache(sdcache.getAbsoluteFile(), cacheSize));
强制走网络来要求必须请求网络数据
request = request.newBuilder().cacheControl(CacheControl.FORCE_NETWORK).build();
取消请求:
finalCallcall = client.newCall(request);
call.cancel();
- android OkHttp的使用
- android OkHttp的使用
- Android中OkHttp的使用
- Android中OkHttp的使用
- android中okhttp的使用
- Android okHttp的简单使用
- Android OkHttp的使用心得
- Android开发之OkHttp的使用
- Android开发之OkHttp的使用
- Android中OKHttp框架的使用
- Android开发之OkHttp的使用
- Android开发之OkHttp的使用
- Android开发之OkHttp的使用
- 【Android - 框架】之OkHttp的使用
- Android:网络层的封装(使用OkHttp)
- Android中OKHttp框架的使用
- Android网络请求框架的使用okhttp
- Android开发之OkHttp的使用
- 如何转载CSDN博客
- switch 关键字的学习
- 如何使用Xcode的Targets来管理开发和生产版本的构建
- 14、css高级属性
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- android OkHttp的使用
- request.getRequestDispatcher().forward() 和response.sendRedirect()区别
- C# 串口操作系列(3) -- 协议篇,二进制协议数据解析
- centos 7 中防火墙的关闭问题
- hibernate注解-属性级别注解
- 遗传算法求解函数最大值用例
- Android 跳转应用市场评分
- "rpm -qa" C 接口的实现过程
- 树与二叉树的转化