#Android OkHttp使用教程
2016-03-30 22:56
781 查看
Android OkHttp使用教程
我自己写的okhttp辅助类 Jerryokhttp地址 OkHttp
本文的教程基于okhttp 3.2.0
一 获取okhttp client
OkHttpClient okHttpClient = new OkHttpClient();
怎么样,是不是很简单?当然,你也可以个性化你的Client:
OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(1000, TimeUnit.MILLISECONDS).build();
OkHttpClient.Builder提供了诸如连接超时、缓存等等诸多配置。
二发送一个Get请求
发送请求我们要通过创建一个Request对象:Request request = new Request.Builder().build();
Request对象为我们提供了几种常见的请求方式:post、get、delete、put。
下面我们将创建一个简单的get请求:
Request request = new Request.Builder().url("your url").get().build();
当然我们现在只是创建了一个Request,发出这个Request是由OkHttpClient完成的:
try { Response response = okHttpClient.newCall(request).execute(); } catch (IOException e) { e.printStackTrace(); }
或者:
okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { } });
如果有一定开发经验的读者读到这里应该已经明白了这两种方法的区别了:
execute方法为我们提供的同步请求,也就是说当我们在UI线程调用此方法会阻塞我们的UI线程。
enqueue是异步的,请求完成或者抛出异常,OkHttpClient会回调名为CallBack的对象,enqueue方法并不会阻塞我们的UI线程。
如果服务器有响应,无论是execute还是enqueue都会为我们提供一个Response对象,Request对象包含了诸多方法,如:
response.isSuccessful(); //预示着请求是否成功,也就是http status code为200的情况; response.code(); //获取http status code,也就是200,404这类的状态码; response.headers(); //获取响应头,返回的是Headers对象。当然也可以通过 response.header("name")或者response.header("name","default vaule")直接获取相应的响应头
当然还有很多其他方法,需要读者自行研究。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories