初学者---Android (简单总结)Retrofit请求方式之get,post

自己用过的,没有坑

    //get请求,无参数
    @GET("product/getCatagory")
    Observable<Catagory> getCatagory();

    /**
     * 根据newsid获取对应的资讯数据
     * @param newsId
     * @return call
     */
	 //有参数
    @GET("News/{newsId}")
    Call<News> getNews(@Path("newsId") String newsId);
    //若需要重新定义接口地址可以使用@Url
    //Map
    @GET
    Call<List<CaigenActivitySubjectsBean>> getActivitySubjectsList(
            @Url String url,
            @QueryMap Map<String, String> map);

    //post有参数
    @FormUrlEncoded
    @POST("user/login")
    Observable<UserBean> getLogin(@Field("mobile") String mobile, @Field("password") String password);
   

    //post有参数(使用map集合)
    @FormUrlEncoded//读参数进行urlEncoded
    @POST("/product/getProductCatagory")
    Observable<ProductCatagory> getProductCatagory(@FieldMap HashMap<String,String> map);

更多,看这里【Android】Retrofit 2.0 的使用

1.封装一个公用的工场Retrofit,(以及添加拦截器)

public class RetrofitFactory {

    //构造
    private RetrofitFactory() {

    }

    private static OkHttpClient httpClient = new OkHttpClient.Builder()
//            .addInterceptor(new LoggingInterceptor())//添加拦截器
                .connectTimeout(30, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build();
    private static ApiServer retrofitService = new Retrofit.Builder()
            .baseUrl(Api.LOGIN_REG)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .client(httpClient)//添加拦截器
            .build()
            .create(ApiServer.class);
    //单列模式
    public static ApiServer getInstance() {
        return retrofitService;
    }
}
2.使用

//使用(结合Rejava使用)
Observable<HomeBean> home = RetroFactory.getInstance().getHome();
	home.subscribeOn(Schedulers.io())//订阅
		.observeOn(AndroidSchedulers.mainThread())//切换到主线程
		.subscribe(new Observer<HomeBean>() {//订阅观察者
			@Override
			public void onCompleted() {
				Log.d(TAG, "onCompleted:--------- ");
			}

			//异常
			@Override
			public void onError(Throwable e) {
				Log.d(TAG, "onError:--------- ");
			}
			//得到数据
			@Override
			public void onNext(HomeBean homeBean) {

				Logger.d(homeBean.getCode()+homeBean.getMsg());
				
			}
		});

常用依赖:

//   Toast依赖 Toasty
    compile 'com.github.GrenderG:Toasty:1.2.5'
    //    logger日志的使用
    compile 'com.orhanobut:logger:2.1.1'
    /*xRecyclerview*/
    compile 'com.jcodecraeer:xrecyclerview:1.3.2'
    /*recyclerview*/
    compile 'com.github.liuguangqiang.SuperRecyclerView:super-recyclerview:0.1.2'

    //retrofit2+okhttp3+rxandroid
    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'
    //fresco
    compile 'com.facebook.fresco:fresco:0.14.1'
    /*二维码依赖*/
    compile 'cn.yipianfengye.android:zxing-library:2.2'
    /*轮播图*/
    compile 'com.youth.banner:banner:1.4.9'
    /*banner的iamge加载*/
    compile 'com.github.bumptech.glide:glide:3.7.0'
    /*imgageloader*/
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

//    eventbus
    compile 'org.greenrobot:eventbus:3.0.0'






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值