Retrofit的简单实用,配置okhttpclient

retrofit:
第一步:导入依赖
retrofit的依赖compile'com.squareup.retrofit2:retrofit:2.3.0'
Gson retrofit依赖compile'com.squareup.retrofit2:converter-gson:2.3.0'
第二步:写接口标注是get请求还是post请求
public interfaceGitHubApi {
@GET("type/{owner}/p/{repo}")
CallgetDate(@Path("owner") Integer owner,@Path("repo") Integer repo);
}
@get 表示get请求
@post表示post请求)
//网址的组成
http://IP+端口号+文件目录+请求参数
("type/{owner}/p/{repo}")
请求参数
写一个返回值是Call的抽象方法,里面的参数
@path("owner") 参数的注解
Integer是参数的类型
owner是参数名
第三步:简单Retrofit使用
//初始化Retrofit
Retrofit retrofit =newRetrofit.Builder()
对于 Retrofit 2.0中新的URL定义方式,这里是我的建议:
- Base URL: 总是以 /结尾
- @Url: 不要以 / 开头
.baseUrl("http://api.expoon.com/AppNews/getNewsList/")
//添加Gson解析
//注意加依赖:compile'com.squareup.retrofit2:converter-gson:2.3.0'
.addConverterFactory(GsonConverterFactory.create())
.build();
//初始化接口API,这里就是接口的实例类
GitHubApi api = retrofit.create(GitHubApi.class);
Call call = api.getDate(2,1);
//异步请求
call.enqueue(newCallback() {
//请求成功的方法
@Override
public void onResponse(Call call,Response response) {
// Log.e("name", "getUsePath:" + response.body().getStatus());
}
//请求失败的方法
@Override
public void onFailure(Call call,Throwable t) {

}
});


Retrofit配置Okhttpclient
//初始化Okhttpclient
OkHttpClientclient=newOkHttpClient.Builder().addNetworkInterceptor(newLoggingInterceptor()).build();
Retrofit retrofit =newRetrofit.Builder()
//加入OKhttpclient
.client(client)
.baseUrl("http://api.expoon.com/AppNews/getNewsList/")
.addConverterFactory(GsonConverterFactory.create())//加上这句话
.build();

//拦截器:
classLoggingInterceptorimplementsInterceptor {
@Override
publicokhttp3.Responseintercept(Chain chain)throwsIOException {
Request request = chain.request();
//获得所有的请求头
Headers headers = request.headers();
for(inti =0;i < headers.size();i++) {
Log.e("MainActivity","name"+ headers.name(i) + headers.value(i));
}
//继续传递拦截的结果
okhttp3.Response response = chain.proceed(request);
returnresponse;
}
}


你可能感兴趣的:(Retrofit的简单实用,配置okhttpclient)