OkHttp的使用
2016-07-28 11:05
309 查看
最近使用了第三方包OkHttp来进行网络请求,感觉挺好用,响应速度也很快。
jar包(点击下载)
github源码(点击下载)
官网介绍(点击下载)
而我用Android Studio,可以直接在gradle里面加上依赖:
基本使用
1.同步get请求:
Response对象里面就是请求返回的数据了。
2.同步post请求:
当然了,这是参数为键值对的post请求,new一个RequestBody的对象,把参数封装起来。
3.异步get请求:
4.异步post请求
最后,这里只是说一下简单的用法,详情以官网为准。
jar包(点击下载)
github源码(点击下载)
官网介绍(点击下载)
而我用Android Studio,可以直接在gradle里面加上依赖:
compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okio:okio:1.5.0'对了,jar包是有两个,添加的话要两个都要添加才行。
基本使用
1.同步get请求:
final String Url = "http://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradehistory.php?symbol=sh601988&date=2016-07-26&page=41"; OkHttpClient mOkHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(Url) .build(); try { Response response = mOkHttpClient.newCall(request).execute(); if (response.isSuccessful()) { String data = new String(response.body().bytes(),"GBK"); //请求成功以后的操作 } else { } } catch (IOException e) { e.printStackTrace(); }
Response对象里面就是请求返回的数据了。
2.同步post请求:
final S<pre name="code" class="java">final String Url1 = "http://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradehistory.php"; RequestBody body = new FormEncodingBuilder() .add("symbol","sh601988") .add("date","2016-07-26") .add("page","41") .build(); OkHttpClient mOkHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(Url1) .post(body) .build(); Call call = mOkHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { //失败的回调 } @Override public void onResponse(final Response response) throws IOException { String data = new String(response.body().bytes(),"GBK"); //成功的回调 } });
当然了,这是参数为键值对的post请求,new一个RequestBody的对象,把参数封装起来。
3.异步get请求:
String url = "http://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradehistory.php?symbol=sh601988&date=2016-07-26&page=41"; //创建okHttpClient对象 OkHttpClient 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(Request request, IOException e) { //失败的回调 } @Override public void onResponse(final Response response) throws IOException { String data = new String(response.body().bytes(),"GBK"); //成功的回调 } });这里要加入请求队列,还要实现回调方法。
4.异步post请求
final String Url1 = "http://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradehistory.php"; RequestBody body = new FormEncodingBuilder() .add("symbol","sh601988") .add("date","2016-07-26") .add("page","41") .build(); OkHttpClient mOkHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(Url1) .post(body) .build(); Call call = mOkHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { //失败的回调 } @Override public void onResponse(final Response response) throws IOException { String data = new String(response.body().bytes(),"GBK"); //成功的回调 } });post方法类似这么做。
最后,这里只是说一下简单的用法,详情以官网为准。
相关文章推荐
- 使用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