retrofit框架使用
来源:互联网 发布:mac战网国服改台服 编辑:程序博客网 时间:2024/06/02 04:55
1.先导包:retrofit2及converter-gson
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.retrofit2:converter-scalars:2.0.2'}
2.创建interface接口数据
public interface YtmfdwApi { @GET("http://www.baidu.com") Call<ResponseBody> getBaidu();}
3.在Actiivty中,调用retrofit联网请求
Retrofit retrofit = new Retrofit.Builder() .baseUrl(API.URL_BASE) .client(API.getOkHttpClient(this)) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(SimpleXmlConverterFactory.create()) .build();QueryService qs = retrofit.create(QueryService.class);Call<String> queryCall = qs.query(page);
4.异步请求(Android不能在主线程中联网请求):
//异步请求baidu.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { try { String value = response.body().string(); LogUtils.d(value); } catch (IOException e) { e.printStackTrace(); } } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { }});
5.配合Gson解析json对象
/** * 检查更新 */private void checkUpdate() { //Gson对象注册UpdateBean实体 Gson gson = new GsonBuilder() .registerTypeAdapter(UpdateBean.class, new MyDeserializer<UpdateBean>()) .create(); //实例Retrofit Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.BASE_URL) .addConverterFactory(GsonConverterFactory.create(gson)) .build(); //获取内容 UpdateApi content = retrofit.create(UpdateApi.class); final Call<UpdateBean> updateContent = content.getContent(); //异步请求 updateContent.enqueue(new Callback<UpdateBean>() { @Override public void onResponse(Call<UpdateBean> call, Response<UpdateBean> response) { try { UpdateBean bean = response.body(); LogUtils.d(bean.toString()); } catch (Exception e) { e.printStackTrace(); } } @Override public void onFailure(Call<UpdateBean> call, Throwable t) { } });}
6.MyDeserializer类
public class MyDeserializer<T> implements JsonDeserializer<T> { @Override public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { //JsonElement je= json.getAsJsonObject().getAsJsonObject("jsonString"); return new Gson().fromJson(json, typeOfT); }}
阅读全文
0 0
- Retrofit框架使用笔记
- Retrofit框架基本使用
- 使用retrofit框架
- Retrofit框架的使用
- Retrofit 2.0框架使用。
- Retrofit框架的使用
- retrofit框架使用
- Retrofit网络框架入门使用
- Retrofit+Okhhtp框架使用心得
- android使用retrofit框架示例
- Android网络框架 - Retrofit基本使用
- android网络框架Retrofit使用记录
- 在android中使用Retrofit网络框架
- Android网络请求框架Retrofit使用详解
- 网络请求框架Retrofit的基本使用
- android框架之Retrofit的使用
- Android中retrofit网络请求框架使用
- Retrofit网络请求框架的基本使用
- 剑指Offer笔记—— 用两个栈实现队列 旋转数组的最小数字
- php如何使用自动加载(重写url形成单一入口)
- 简单的Html和JavaScript:用户注册页面
- elasticsearch插件安装
- 基础复习
- retrofit框架使用
- React之使用context传递数据
- 继续努力
- Android进程间通信
- 1037: [ZJOI2008]生日聚会Party dp
- MATLAB GUI设计的大小控制参数units
- hystrix的超时含义
- jquery.lazyload 懒加载
- Spark---Word Count