Retrofit网络请求
来源:互联网 发布:日常工作安排软件 编辑:程序博客网 时间:2024/06/18 14:58
依赖 compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1' compile 'io.reactivex:rxandroid:1.1.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.jcodecraeer:xrecyclerview:1.3.2' compile 'com.facebook.fresco:fresco:1.5.0' compile 'org.greenrobot:greendao:3.2.0' compile 'org.greenrobot:greendao-generator:3.2.0' compile 'com.getbase:floatingactionbutton:1.10.1'RetrofitUtils代码
package test.bawie.fangjd.model.net;import android.util.Log;import java.util.concurrent.TimeUnit;import okhttp3.OkHttpClient;import okhttp3.logging.HttpLoggingInterceptor;import retrofit2.Retrofit;import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;import retrofit2.converter.gson.GsonConverterFactory;public class RetrofitUtils { private static RetrofitUtils retrofitUtils; private RetrofitUtils(){ } public static RetrofitUtils getInstance(){ if(retrofitUtils==null){ synchronized (RetrofitUtils.class){ if(retrofitUtils==null){ retrofitUtils=new RetrofitUtils(); } } } return retrofitUtils; } private static Retrofit retrofit; public static synchronized Retrofit getRetrofit(String url){ HttpLoggingInterceptor httpLoggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.i("xxx",message); } }); httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient okHttpClient=new OkHttpClient.Builder() .addInterceptor(httpLoggingInterceptor) .connectTimeout(5000, TimeUnit.SECONDS) .readTimeout(5000,TimeUnit.SECONDS) .retryOnConnectionFailure(false) .build(); if(retrofit==null){ retrofit=new Retrofit.Builder().baseUrl(url) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); } return retrofit; } public <T>T getApiService(String url,Class<T> cl){ Retrofit retrofit = getRetrofit(url);//得到retrofit return retrofit.create(cl);//返回的就是网络接口对象 }}ApiService代码(照猫画虎)
package test.bawie.fangjd.model.net;import okhttp3.MultipartBody;import okhttp3.RequestBody;import retrofit2.http.GET;import retrofit2.http.Multipart;import retrofit2.http.POST;import retrofit2.http.Part;import retrofit2.http.Query;import rx.Observable;import test.bawie.fangjd.model.bean.AddGoodsBean;import test.bawie.fangjd.model.bean.AddrsBean;import test.bawie.fangjd.model.bean.DeleteGoods;import test.bawie.fangjd.model.bean.FenYouBean;import test.bawie.fangjd.model.bean.FenYouMainBean;import test.bawie.fangjd.model.bean.GoodsBean;import test.bawie.fangjd.model.bean.GoodsCarBean;import test.bawie.fangjd.model.bean.ShangChuanBean;import test.bawie.fangjd.model.bean.SouSuoBean;import test.bawie.fangjd.model.bean.TianJiaBean;import test.bawie.fangjd.model.bean.UserinfoBean;public interface ApiService { /** * 结合Retrofit+RxJava * https://www.zhaoapi.cn/product/getProductCatagory?cid=1 * @param * @return */ @GET("getProductCatagory") Observable<FenYouBean> getNoParams(@Query("cid")int cid); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/getProducts?pscid=1 * @param * @return */ @GET("getProducts") Observable<FenYouMainBean> getNoParams2(@Query("pscid")int pscid); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/getProductDetail?pid=1 * @param * @return */ @GET("getProductDetail") Observable<GoodsBean> getNoParams3(@Query("pid")int pid); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/searchProducts?keywords=笔记本&page=1&source=android * @param * @return */ @GET("searchProducts") Observable<SouSuoBean> getsousuo(@Query("keywords")String keywords,@Query("page")int page,@Query("source")String source); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/user/getUserInfo?uid=552&token=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("getUserInfo") Observable<UserinfoBean> getuserinfo(@Query("uid")int uid, @Query("token")String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/addCart?uid=552&pid=965&token=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("addCart") Observable<AddGoodsBean> addgoods(@Query("uid")int uid,@Query("pid")int pid, @Query("token")String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/getCarts?uid=552&token=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("getCarts") Observable<GoodsCarBean> gouwucar(@Query("uid")int uid, @Query("token")String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/product/deleteCart?uid=72&pid=1&token=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("deleteCart") Observable<DeleteGoods> deletegoods(@Query("uid")int uid, @Query("pid")int pid, @Query("token")String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/user/getAddrs?uid=552&uid=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("") Observable<AddrsBean> getAddres(@Query("uid")String uid,@Query("token")String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/user/getAddrs?uid=552&uid=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @GET("addAddr") Observable<TianJiaBean> tianjia(@Query("uid")int uid, @Query("addr")String addr,@Query("mobile")String mobile,@Query("name")String name,@Query("token") String token); /** * 结合Retrofit+RxJava *https://www.zhaoapi.cn/user/getAddrs?uid=552&uid=4B5DAF274221936555E01E5F7BC271F4 * @param * @return */ @Multipart @POST("file/upload") Observable<ShangChuanBean> uploadPic(@Part("uid") RequestBody uid, @Part MultipartBody.Part file,@Part("token") RequestBody token);}Api代码(照猫画虎)package test.bawie.fangjd.model.net;public interface Api { public static final boolean isOnline = false;// public static final String devIp = "http://120.27.23.105"; public static final String devIp = "https://www.zhaoapi.cn"; public static final String workIp = ""; public static final String HOST = isOnline ? workIp : devIp; public static final String LOGIN = HOST+"/user/login"; public static final String REG = HOST+"/user/reg"; public static final String USERINFO = HOST+"/user/getUserInfo"; public static final String SHOUYEGG = HOST+"/ad/getAd"; public static final String FENZUO = HOST+"/product/getCatagory"; public static final String FENYOU = HOST+"/product/"; public static final String FENYOUMAIN = HOST+"/product/"; public static final String GOODS = HOST+"/product/"; public static final String SOUSUO = HOST+"/product/"; public static final String USER = HOST+"/user/"; public static final String ADDGOODS = HOST+"/product/"; public static final String GWCAR = HOST+"/product/"; public static final String DELETE = HOST+"/product/"; public static final String ADDRES = HOST+"/user/getAddrs"; public static final String TIANJIA = HOST+"/user/addAddr"; public static final String DINGDAN = HOST+"/product/createOrder"; public static final String DAN = HOST+"/product/getOrders"; public static final String GETFI= HOST+"/"; public static final String ADDMM= HOST+"/user/setAddr"; public static final String GETMM= HOST+"/user/getDefaultAddr";} Retrofit请求代码Retrofit retrofit = RetrofitUtils.getRetrofit(Api.ADDGOODS);ApiService apiService = retrofit.create(ApiService.class);Observable<AddGoodsBean> observable = apiService.addgoods(uid, pid, token);observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map(new Func1<AddGoodsBean, AddGoodsBean>() { @Override public AddGoodsBean call(AddGoodsBean addGoodsBean) { return addGoodsBean; } }).subscribe(new Subscriber<AddGoodsBean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(AddGoodsBean addGoodsBean) { iAddGoodsModel.onSuccess(addGoodsBean); }});
阅读全文
0 0
- Retrofit 网络请求
- Retrofit网络请求
- Retrofit网络请求入门
- 初试Retrofit网络请求
- Retrofit网络请求使用
- retrofit网络请求框架
- Retrofit 网络请求
- 网络请求框架:Retrofit
- Retrofit -网络请求
- Retrofit 网络请求学习
- 网络请求框架Retrofit
- Retrofit网络请求
- Retrofit网络请求框架
- RXJava+Retrofit网络请求
- Retrofit 网络请求
- Retrofit网络请求
- Retrofit进行网络请求
- 使用Retrofit进行网络请求
- 为TensorFlow引入即时执行
- 记录SQL Server建表的字段排序规则
- Qt之高级网络操作(HTTP/FTP快速上手)
- 快速和改进的二维凸包算法及其在O(n log h)中的实现(实现部分)
- 基于Springboot的Spring AOP学习记录
- Retrofit网络请求
- vue-resource交互写法
- Java内部类
- 增查排
- 【计算机导论】程序编码与简单输入/输出
- AI与大数据分析结合,就像给大象装上翅膀
- Paxos理论介绍(三): Master选举
- 流形学习-高维数据的降维与可视化
- Spring容器