Retrofit的简单实用,配置okhttpclient

来源:互联网 发布:监控软件下载 编辑:程序博客网 时间:2024/06/13 21:03
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使用//初始化RetrofitRetrofit 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>() {//请求成功的方法@Overridepublic void onResponse(Call<Bean> call,Response<Bean> response) {// Log.e("name", "getUsePath:" + response.body().getStatus());}//请求失败的方法@Overridepublic void onFailure(Call<Bean> call,Throwable t) {}});Retrofit配置Okhttpclient//初始化OkhttpclientOkHttpClientclient=newOkHttpClient.Builder().addNetworkInterceptor(newLoggingInterceptor()).build();Retrofit retrofit =newRetrofit.Builder()//加入OKhttpclient.client(client).baseUrl("http://api.expoon.com/AppNews/getNewsList/").addConverterFactory(GsonConverterFactory.create())//加上这句话.build();//拦截器:classLoggingInterceptorimplementsInterceptor {@Overridepublicokhttp3.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;}}


原创粉丝点击