Retrofit的简单实用,配置okhttpclient

xiaoxiao2021-02-28  96

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; } }
转载请注明原文地址: https://www.6miu.com/read-24195.html

最新回复(0)