5-1,2 网络框架接口搭建敲代码步骤笔记+一些注解(可能不恰当,注解中的数字为代码步骤)

来源:5-1 网络框架接口创建-1

ImoocZhang

2017-08-09

写回答

1回答

ImoocZhang

提问者

2017-08-09

package com.diabin.latte.net;
//1---->在上面包中新建进行请求的名为“RestClient”具体实现类//
public class RestClient {}

//2---->latte-core->java—>新建名为“net”的package//

//3---->latte-core->java—->net->新建 Interface RestService//

public interface RestService {
    //4--->一系列方法用于具体请求的实现,纯理论//
    @GET
    Call<String> get(@Url String url, @QueryMap Map<String,Object> params);//5--->注解拼接//

    @FormUrlEncoded
    @POST
    Call<String> post(@Url String url, @FieldMap Map<String,Object> params);

    @FormUrlEncoded
    @PUT
    Call<String> put(@Url String url, @FieldMap Map<String,Object> params);

    @DELETE
    Call<String> delete(@Url String url, @QueryMap Map<String,Object> params);

    @Streaming  //7---->边下载,边写入注解//
    @GET
    Call<ResponseBody> dowmload(@Url String url, @QueryMap Map<String,Object> params);//6---->rest默认一次下载完到内存里,在写入文件里,文件过大容易内存溢出//

    @Multipart
    @POST
    Call<String> upload(@Url String url,@Part MultipartBody.Part file);

}

//8---->在package com.diabin.latte.net;中新建名为RestCreator的类//
public class RestCreator {
    //15---->//'
    public static RestService getRestSerVice(){
        return RestServiceHolder.REST_SERVICE;
    }

    //9---->推荐,静态内部类holder//
    private static final class RetrofitHolder{
        //10---->//
        private static final String BASE_URL = (String) Latte.getConfigurations().get(ConfigType.API_HOST.name());
        //11---->//
        private static final Retrofit RETROFIT_CLIENT=new   Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(OKHttpHolder.OK_HTTP_CLIENT) //14---->retrofit创建成功//
                .addConverterFactory(ScalarsConverterFactory.create())
                .build();
    }
  t  //12---->对okhttp的惰性初始化,静态内部类//
    privae static  final class OKHttpHolder{
        private static final int   TIME_OUT = 60;
        //13---->丰非常火的模式//
        private static final OkHttpClient OK_HTTP_CLIENT = new OkHttpClient.Builder()
                .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
                .build();
    }
    //15---->同样的静态内部类//
    private static final  class RestServiceHolder{
        private static final RestService REST_SERVICE =
                RetrofitHolder.RETROFIT_CLIENT.create(RestService.class);
    }
}


1
0

Android通用框架设计与完整电商App开发

从第一行代码开始教你,通用且一键式配置的框架设计并轻松实现完整电商App

2028 学习 · 1182 问题

查看课程