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);
}
}10
相似问题