您的位置:首页 > 理论基础 > 计算机网络

Retrofit的简单实用,配置okhttpclient

2017-06-06 20:47 316 查看
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}")
Call<Bean>getDate(@Path("owner") Integer owner,@Path("repo") Integer repo);
}
@get 表示get请求
@post表示post请求)
//网址的组成 http://IP+端口号+文件目录+请求参数 ("type/{owner}/p/{repo}")
请求参数
写一个返回值是Call<Bean>的抽象方法,里面的参数
@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<Bean> call = api.getDate(2,1);
//异步请求
call.enqueue(newCallback<Bean>() {
//请求成功的方法
@Override
public void onResponse(Call<Bean> call,Response<Bean> response) {
// Log.e("name", "getUsePath:" + response.body().getStatus());
}
//请求失败的方法
@Override
public void onFailure(Call<Bean> 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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: