HttpUtlis`
public class HttpUtils {
private String baseurl = "http://172.17.8.100";
// 传递头参
Map<String ,String> hendmap = new HashMap<>();
public HttpUtils setHead(Map<String ,String> hendmap){
this.hendmap = hendmap;
return this;
}
public HttpUtils get(String url, Map<String,String> map){
if(map == null){
map = new HashMap<>();
}
// 添加连接器
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
long size = 1024*10;
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
return chain.proceed(request);
}
}).cache(new Cache(file,size)).build();
// 正常操作
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseurl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(client)
.build();
HttpSrevice Srevice = retrofit.create(HttpSrevice.class);
Srevice.get(url,hendmap,map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
String data = responseBody.string();// 服务端反回的数据
httpListEner.success(data);
} catch (IOException e) {
e.printStackTrace();
String message = e.getMessage();// 服务端返回的错误信息
httpListEner.fail(message);
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
return this;
}
HttpListEner httpListEner;
public void roster(HttpListEner httpListEner){
this.httpListEner = httpListEner;
}
}
HttpService
@GET
Observable<ResponseBody> get(@Url String url, @HeaderMap Map<String,String> hendmap, @QueryMap Map<String,String> map);
MainMadapter
public class SyFragment extends Fragment implements IndexView {
@BindView(R.id.xrecycle)
XRecyclerView mxRecyclerView;
private IndexpresenterIml indexpresenterIml;
private MyAdapter adapter;
private List<ResultBean> result;
private Map<String, String> map;
private ShowBean showBean;
private ResultBeanDao resultBeanDao;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(),R.layout.activity_sy,null);
ButterKnife.bind(this,view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// 请求数据
indexpresenterIml = new IndexpresenterIml(new IndexModelIml(),this);
adapter = new MyAdapter(getActivity());
GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(),2);
gridLayoutManager.setOrientation(GridLayoutManager.VERTICAL);
mxRecyclerView.setLayoutManager(gridLayoutManager);
mxRecyclerView.setAdapter(adapter);
map = new HashMap<>();
map.put("keyword","手机");
map.put("page",1+"");
map.put("count",10+"");
indexpresenterIml.get(0,"http://172.17.8.100/small/commodity/v1/findCommodityByKeyword", map);
// 保存到数据库
DaoSession daoSession = DaoMaster.newDevSession(getActivity(), ResultBeanDao.TABLENAME);
resultBeanDao = daoSession.getResultBeanDao();
//创建网络判断工具类
NetStuste netStuste = new NetStuste();
boolean connected = netStuste.isNetworkConnected(getActivity());
// 从数据库取出来
List<ResultBean> resultBeans = resultBeanDao.loadAll();
if(!connected){
if(resultBeans != null){
result = showBean.getResult();
adapter.setList(result);
}
}
mxRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
result.clear();
indexpresenterIml.get(0,"http://172.17.8.100/small/commodity/v1/findCommodityByKeyword", map);
}
@Override
public void onLoadMore() {
}
});
}
@Override
public void success(int yype, String data) {
showBean = new Gson().fromJson(data, ShowBean.class);
// for (int i = 0; i < showBean.getResult().size() ; i++) {
//
// resultBeanDao.insert(new ResultBean(null,showBean.getResult().get(i).getCommodityId()+"",showBean.getResult().get(i).getMasterPic(),showBean.getResult().get(i).getPrice()+"",showBean.getResult().get(i).getSaleNum(),showBean.getResult().get(i).getCommodityName()));
//
//
// }
result = showBean.getResult();
adapter.setList(result);
}
@Override
public void fail(int type, String error) {
}
加粗样式
在这里插入代码片