Retrofit网络请求

依赖

    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值