okhttp的使用
2016-05-20 10:17
465 查看
1、square开源项目
square的开源项目很多,并且也很好用,特别是比较火的有picasso图片加载框架。
square github官网地址http://square.github.io/1、picasso加载图片框架。地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载。
2、android-time-square:一个日历控件代码托管地址https://github.com/square/android-times-square
2、okhttp的介绍
官方介绍http://square.github.io/okhttp/okhttp :An HTTP & HTTP/2 client for Android and Java applications
okhttp是非常高效的网络请求,它是基于http/http2。允许同一主机的所有请求共享一个socket
减少网络请求时间Connection pooling reduces request latency (if HTTP/2 isn’t available).
使用gzip压缩,缩小下载大小。
响应缓存避免了网络重复请求
断线重连,多地址请求备用。
使用简单,支持同步和异步请求。
要求:
android版本2.3以上
java 1.7以上
3、okhttp的使用
第一、两个jar包一个是okhttp.jar:
一个是okio.jar:okio.jar是一个新的补充库,它使
数据传输更加便捷,存储和传输(OkHttp uses for fast I/O and resizable buffers)。
第二、发送请求Request
OkHttpClient client = new OkHttpClient(); String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); return response.body().string(); }
第三、请求后的回调
call.enqueue(new Callback() { //失败的回调 @Override public void onFailure(Call call, IOException e) { } //成功的回调 @Override public void onResponse(Call call, Response response) throws IOException { Log.i(TAG, response.body().string()); //刷新ui,okhttp网络请求后,不是在主线程中,如果要刷新ui,必须的主线程中; } });
发送一个url的示例代码
public class MainActivity extends Activity { private TextView tv_date; private String url = "http://square.github.io/okhttp"; private final static String TAG = "MainActivity"; private OkHttpClient mOkHttpClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_date = (TextView) findViewById(R.id.tv_data); mOkHttpClient = new OkHttpClient(); //创建一个Request final Request request = new Request.Builder() .url(url) .build(); //new call Call call = mOkHttpClient.newCall(request); //请求加入调度 call.enqueue(new Callback() { //失败的回调 @Override public void onFailure(Call call, IOException e) { } //成功的回调 @Override public void onResponse(Call call, Response response) throws IOException { Log.i(TAG, response.body().string()); //刷新ui,okhttp网络请求后,不是在主线程中,如果要刷新ui,必须的主线程中; } }); } }
相关文章推荐
- tcpdump常用抓包命令
- java发http,https请求获取数据
- 网络编程(二)
- 检查网络状况
- Http服务压力测试工具Alex(自带Web UI)
- http://my.oschina.net/u/946060/blog/337419
- 防止运营商网络劫持,避免被他人强行插入广告
- Java Json解析,Java Web Json解析,Java Web服务端获取Json数据,客户端通过HTTP获取Json数据
- 哪些网站需要HTTPS(SSL证书)
- VS2010环境下使用VB开发网络编程(WinHttp)
- OSI七层与TCP/IP五层网络架构详解
- 基本TCP套接字编程
- OKHttp源码解析
- HTTP协议:(1)HTTP请求和相关API
- http://douchat.cc/?/article/
- 基于TCP/IP协议的网络攻击
- Font from origin 'http://apps.bdimg.com' has been blocked
- HttpModule与HttpHandler详解
- tomcat添加https服务
- linux 网络管理