> 文档中心 > Retrofit获取网络数据并打印

Retrofit获取网络数据并打印

测试网站JSON网址https://api.douban.com/v2/book/search?q=金瓶梅&tag=&start=0&count=1(该网址从其他文章获取)

首先添加依赖:

implementation 'com.squareup.retrofit2:converter-gson:2.2.0' // 用Gson解析json的转换器implementation 'com.squareup.retrofit2:retrofit:2.3.0'// Retrofit库implementation 'com.squareup.okhttp3:okhttp:3.8.1'// Okhttp库implementation 'com.squareup.retrofit2:converter-gson:2.2.0'implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'// 打印日志implementation 'com.orhanobut:logger:2.1.0' // 打印日志

第一步:新建一个RetrofitService,使需要的数据传输

public interface RetrofitService {    @GET("book/search")    Call getSearchBook(@Query("q") String name,@Query("tag") String tag,@Query("start") int start,@Query("count") int count);

第二步:进行网络请求和数据打印

 
//打印日志方法OkHttpClient okHttpClient = new OkHttpClient .Builder() .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .build();Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.douban.com/v2/") .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create())) .build();RetrofitService service = retrofit.create(RetrofitService.class);Call call = service.getSearchBook("金瓶梅", null, 0, 1);call.enqueue(new Callback() {    @Override    public void onResponse(Call call, Response response) { text.setText(response.body()+"");    }    @Override    public void onFailure(Call call, Throwable t) {    }});

第三步:根据打印出来的Log来进行生成实体类

第四部:把JsonObject换成生成的实体类,把需要的数据生成到界面

参考文章:http://www.jianshu.com/p/7b839b7c5884