import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
public class LoggingInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
//拿到Request对象
Request request = chain.request();
long t1 = System.nanoTime();
System.out.println(" request = " + String.format("Sending request %s on %s%n%s",
request.url(), chain.connection(), request.headers()));
//拿到Response对象
Response response = chain.proceed(request);
long t2 = System.nanoTime();
//得出请求网络,到得到结果,中间消耗了多长时间
System.out.println("response " + String.format("Received response for %s in %.1fms%n%s",
response.request().url(), (t2 - t1) / 1e6d, response.headers()));
return response;
}
}
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface UrlInterface {
@GET("nba/")
Call<JsonBean> getwz(@Query("key")String key,@Query("num")int num);
}
package shopping.bwie.com.liyuanqi20181207;
import java.util.List;
import okhttp3.OkHttpClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.GsonConverterFactory;
import retrofit2.Response;
import retrofit2.Retrofit;
public class RetrofitUrl {
public static void getUrl(int num, final OkhttpInterface<List<JsonBean.NewslistBean>> okhttpInterface){
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new LoggingInterceptor());
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://api.tianapi.com/")
.client(builder.build())
.build();
UrlInterface urlInterface = retrofit.create(UrlInterface.class);
Call<JsonBean> getwz = urlInterface.getwz("71e58b5b2f930eaf1f937407acde08fe", num);
getwz.enqueue(new Callback<JsonBean>() {
@Override
public void onResponse(Call<JsonBean> call, Response<JsonBean> response) {
okhttpInterface.datacg(response.body().getNewslist());
}
@Override
public void onFailure(Call<JsonBean> call, Throwable t) {
okhttpInterface.datasb((Exception) t);
}
});
}
}