对Retrofit的认识和学习
之前 都是用okhttp 我觉得挺好用的 特别是弘扬老师的封装,用起来真的得心应手,现在别人都在说Retrofit怎么好用!IT 都在不断变化的技术!所以没事 我也研究研究,不然万一项目用的着那,所以把自己的简介 都聊聊!肯定会在别人的博客里面拷贝东西!
1,创建业务请求接口
2,创建Retrofit示例 并完成相应的配置
2,就是网络请求
先说创建业务请求接口吧 自己根据自己项目中的创建
public interface LoginService{
@GET("user/login")
CallgetLogin(@Query("token")Stringtoken,@Field("Account")StringAccount,@Field("Password")StringPassword);
}
@Get 就是get请求 里面参数 @Query 就是拼接在url后面的键值对 @Query("token) 就是key token 就是值 @Get("user/login") 就是拼接在baseUrl 后面的 变动参数
OkHttpClient client= newOkHttpClient.Builder()
.addInterceptor(new CommonInterceptor())
.build();
第一段代码是创建一个okHttpClient 这个可用可不用 如果请求url 里面有固定的参数 可以添加这个 okhttpClient 如果入固定参数也可以不用 创建一个 CommonInterceptor
public class CommonInterceptor implements Interceptor{
@Override
public Responseintercept(Interceptor.Chainchain)throwsIOException{
Requestrequest=chain.request();
HttpUrlhttpUrl=request.url().newBuilder()
.addQueryParameter("token","tokenValue")
.build();
request=request.newBuilder().url(httpUrl).build();
returnchain.proceed(request);
}
}
token 和tokenValue 是每个链接的固定值 就可以创建一个 Interceptor,
Retrofit retrofit= newRetrofit.Builder().client(client)
.baseUrl("http://www.test.ap.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build();
baseUrl 是添加域名和端口的网址 俗称 baseUrl 里面的url必须以"/"结尾不然会报错哦,addConverterFactory 是添加一个解析请求参数的Json字符串 下面 就用retrofit 执行网络请求
LoginService service=retrofit.create(LoginService.class);
创建一个网络请求的接口
CallsearchBooks=service.postLogin(newSignBean(),"13098834723","123456");//给接口传递参数
searchBooks.enqueue(newCallback() {
@Override
public void onResponse(Callcall,Responseresponse) {
Log.d("Main",response.body().toString()+"");
}
@Override
public void onFailure(Callcall,Throwablet) {
Log.d("Main","看见就放弃");
}
});
然后是创建 网络连接