网络通信框架之okHttp
2024-09-05 11:39:25
主页: https://github.com/square/okhttp
特点:
* 支持HTTP/2 和 SPDY
* 默认支持 GZIP 降低传输内容的大小
*
支持网络请求的缓存
* 当网络出现问题时,自动重试一个主机的多个 IP 地址
请求流程:
配置: compile 'com.squareup.okhttp3:okhttp:3.2.0'
使用示例代码:
public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1. 创建http客户端
OkHttpClient okHttpClient = new OkHttpClient();
//2. 创建请求
Request request = new Request.Builder()
.get() //get请求
.url("http://www.baidu.com")
.build();
//3. 发起请求
//同步的请求,耗时操作不推荐使用
// okHttpClient.newCall().execute();
//异步请求
okHttpClient.newCall(request).enqueue(new MyCallback());
} private class MyCallback implements Callback {
//失败 ,回调方法在子线程中
@Override
public void onFailure(Call call, IOException e) {
// Toast.makeText(MainActivity.this,"网络请求失败",Toast.LENGTH_SHORT).show();
showToastInAnyThread("网络请求失败");
}
//成功回调 ,回调方法在子线程中
@Override
public void onResponse(Call call, Response response) throws IOException {
String text = response.body().string();
showToastInAnyThread(text);
}
} public void showToastInAnyThread(final String text){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
}
});
} }
最新文章
- nodejs基于art-template模板引擎生成
- C#中WinForm程序退出方法技巧总结(转)
- Cocos2d-x SpriteFrameCache的使用
- POJ 1845 Sumdiv 【逆元】
- CSS“反转”为LESS
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.4.MVC的主要工具-使用Moq
- Android ROM 备书
- CentOS对新加入的硬盘格式化
- NIOP1995 石子合并(区间DP)
- Spark系列(四)整体架构分析
- Disruptor框架
- rownum与rowId
- 简单的php表单
- [简历] JAVA 软件工程师
- 暴力求解——POJ 3134Power Calculus
- java发送post请求 ,请求数据放到body里
- rocketmq控制台搭建(rocketmq-console)
- Python3学习笔记09-字典
- 集成算法——Ensemble learning
- div的全屏与退出全屏