#retrofit的简单二次封装
基于上次的retrofit初探后,可以对retrofit简单的二次封装
public interface HttpURL {
String baseUrl = "http://127.0.0.1:32001/";
}
public class RequestUtils {
private static OkHttpClient client;
private static Retrofit retrofit;
private RequestUtils() {
}
static {
client = new OkHttpClient()
.newBuilder()
.connectTimeout(8, TimeUnit.SECONDS)
.readTimeout(8, TimeUnit.SECONDS)
.writeTimeout(8, TimeUnit.SECONDS)
.addInterceptor(new HttpInterceptor())
.build();
retrofit = new Retrofit.Builder()
.baseUrl(HttpURL.baseUrl)
.client(client)
.addConverterFactory(StringConverterFactory.create())
.build();
}
public static String post(String url, String body) throws IOException {
RequestServer requestServer = retrofit.create(RequestServer.class);
String[] path = url.split("/");
Call<String> call = requestServer.post(path[0], path[1], body);
Response<String> response = call.execute();
return response.body();
}
public static void main(String[] args) throws IOException {
String hello = post("ping/test", "hello");
System.out.println(hello);
}
}
输出结果
{"code":200,"content":{"msg":"成功"}}
这里的post方法就是传入url,请求参数是body,返回值就是String类型,如果需要对string,如果需要对返回值进行处理,再接受hello的对应参数进行处理即可
同样的道理,现在很多的网站可以使用put/delete/get/post等不同的method方法在同一个URL下区分不同的业务逻辑和返回值,只要进行对应的封装即可