Retrofit请求方式
来源:互联网 发布:python获取当前函数名 编辑:程序博客网 时间:2024/06/03 19:12
//首先就是要导包
compile 'com.squareup.retrofit2:retrofit:2.3.0'
//RetrofitHelper
package com.example.xzhaogao01.netWork;import okhttp3.OkHttpClient;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;/** * Created by 绅丶士 on 2017/12/2. */public class RetrofitHelper { private static OkHttpClient okHttpClient; private static ServiceAPL serviceAPL; static { ininOkHttpClient(); } private static void ininOkHttpClient(){ if(okHttpClient==null){ synchronized (RetrofitHelper.class){ if(okHttpClient==null){ okHttpClient=new OkHttpClient.Builder().build(); } } } } public static ServiceAPL getAPI(){ if(serviceAPL==null){ synchronized (ServiceAPL.class){ if(serviceAPL==null){ serviceAPL=RetrofitHelper.createAPI(ServiceAPL.class,UrlUtils.BASE_HOST_URL); } } } return serviceAPL; } /** * * @param clazz * @param url * @param <T> * @return */ public static <T> T createAPI(Class<T> clazz,String url){ Retrofit retrofit=new Retrofit.Builder().baseUrl(UrlUtils.BASE_HOST_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit.create(clazz); }}
//ServiceAPL
public interface ServiceAPL { @GET(UrlUtils.TAGS) Call<UserBean> tabs();}
UrlUtils
public class UrlUtils { public static final String BASE_HOST_URL = "http://gank.io/api/"; public static final String TAGS = "data/Android/10/1";}
//调用
public class ShowYeFr extends Fragment{ UserDao userDao; private RecyclerView lv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fr_item01,container,false); lv = view.findViewById(R.id.Rlv); //设置布局管理器 lv.setLayoutManager(new LinearLayoutManager(getContext())); //判断网络是否连接 IFWork ifWork = new IFWork(); //添加分割线 //lv.addItemDecoration(new RecycleViewDivider(getContext(), LinearLayoutManager.HORIZONTAL,5,getResources().getColor(R.color.colorPrimary))); //判断网络 //动态代理 ServiceAPL api= RetrofitHelper.getAPI(); Call<UserBean> tags=api.tabs(); tags.enqueue(new Callback<UserBean>() { @Override public void onResponse(Call<UserBean> call, Response<UserBean> response) { UserBean body = response.body(); List<UserBean.ResultsBean> results = body.getResults(); for (UserBean.ResultsBean r: results ) { userDao.insert(new User(System.currentTimeMillis(),r.getCreatedAt(),r.getDesc())); } //创建适配器 Myadap myadap = new Myadap(getActivity(), results); lv.setAdapter(myadap); } @Override public void onFailure(Call<UserBean> call, Throwable t) { } }); //初始化数据库 initDbHelp(); return view; } private void initDbHelp(){ DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getActivity(), "recluse-db", null); SQLiteDatabase db = devOpenHelper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); DaoSession daoSession = daoMaster.newSession(); userDao=daoSession.getUserDao(); }}
package com.example.xzhaogao01.netWork;import okhttp3.OkHttpClient;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;/** * Created by 绅丶士 on 2017/12/2. */public class RetrofitHelper { private static OkHttpClient okHttpClient; private static ServiceAPL serviceAPL; static { ininOkHttpClient(); } private static void ininOkHttpClient(){ if(okHttpClient==null){ synchronized (RetrofitHelper.class){ if(okHttpClient==null){ okHttpClient=new OkHttpClient.Builder().build(); } } } } public static ServiceAPL getAPI(){ if(serviceAPL==null){ synchronized (ServiceAPL.class){ if(serviceAPL==null){ serviceAPL=RetrofitHelper.createAPI(ServiceAPL.class,UrlUtils.BASE_HOST_URL); } } } return serviceAPL; } /** * * @param clazz * @param url * @param <T> * @return */ public static <T> T createAPI(Class<T> clazz,String url){ Retrofit retrofit=new Retrofit.Builder().baseUrl(UrlUtils.BASE_HOST_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit.create(clazz); }}
//ServiceAPL
public interface ServiceAPL { @GET(UrlUtils.TAGS) Call<UserBean> tabs();}
UrlUtils
public class UrlUtils { public static final String BASE_HOST_URL = "http://gank.io/api/"; public static final String TAGS = "data/Android/10/1";}
//调用
public interface ServiceAPL { @GET(UrlUtils.TAGS) Call<UserBean> tabs();}
public class ShowYeFr extends Fragment{ UserDao userDao; private RecyclerView lv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fr_item01,container,false); lv = view.findViewById(R.id.Rlv); //设置布局管理器 lv.setLayoutManager(new LinearLayoutManager(getContext())); //判断网络是否连接 IFWork ifWork = new IFWork(); //添加分割线 //lv.addItemDecoration(new RecycleViewDivider(getContext(), LinearLayoutManager.HORIZONTAL,5,getResources().getColor(R.color.colorPrimary))); //判断网络 //动态代理 ServiceAPL api= RetrofitHelper.getAPI(); Call<UserBean> tags=api.tabs(); tags.enqueue(new Callback<UserBean>() { @Override public void onResponse(Call<UserBean> call, Response<UserBean> response) { UserBean body = response.body(); List<UserBean.ResultsBean> results = body.getResults(); for (UserBean.ResultsBean r: results ) { userDao.insert(new User(System.currentTimeMillis(),r.getCreatedAt(),r.getDesc())); } //创建适配器 Myadap myadap = new Myadap(getActivity(), results); lv.setAdapter(myadap); } @Override public void onFailure(Call<UserBean> call, Throwable t) { } }); //初始化数据库 initDbHelp(); return view; } private void initDbHelp(){ DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getActivity(), "recluse-db", null); SQLiteDatabase db = devOpenHelper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); DaoSession daoSession = daoMaster.newSession(); userDao=daoSession.getUserDao(); }}
阅读全文
0 0
- Retrofit请求方式
- retrofit请求
- Retrofit 请求
- Retrofit基础之最简单的get请求方式
- 初学者---Android (简单总结)Retrofit请求方式之get,post
- Retrofit 网络请求
- Retrofit网络请求
- 使用Retrofit请求API
- retrofit post请求
- Retrofit请求字符串
- Rxjava+Retrofit 请求数据
- Retrofit Https请求
- Retrofit网络请求入门
- 初试Retrofit网络请求
- 使用Retrofit Https请求
- Retrofit网络请求使用
- Retrofit设置请求超时
- retrofit网络请求框架
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 温度的识别
- SpringBoot项目中使用redis缓存
- 网站访问高峰之后,如何回收已占用的swap分区
- NEC的红外编码!
- Retrofit请求方式
- 使用ApkTool分析apk文件(windows)
- Jmockit使用详解之Mocking
- equals与==区别
- 每天一道算法题——树的子结构
- 我的Kotlin For Android之路基础篇(二)
- 测试应该知道的Nginx知识
- 练习题 一
- CodeForces