利用Retrofit进行网络访问

本文介绍如何利用Retrofit框架发起GET请求,并处理服务器返回的JSON格式数据。具体包括依赖包配置、创建Retrofit实例、定义接口及回调处理等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要下载Retrofit包,可以直接在build.gradle中写入

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'

在主函数中
对于 普通的get请求 返回的数据为gson解析后的list集合

public void initRetrofit(){
    Retrofit retrofit=new Retrofit
            .Builder()
            .baseUrl(Constant.TEABASE_URL)
            //如果服务器返回的时json格式数据 设置了GsonConverterFactory
            //实现对对象的转化
            // 自定义数据解析器 只要解析器继承Converter.Factory即可
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    INewsBiz iNewsBiz=retrofit.create(INewsBiz.class);
    Call<List<Tea>> call=iNewsBiz.getTeas();
    call.enqueue(new Callback<List<Tea>>() {
        @Override
        public void onResponse(Call<List<Tea>> call, Response<List<Tea>> response) {
            if(response.isSuccess()){
                List<Tea> list=response.body();//获取解析后的集合
                StringBuilder sb=new StringBuilder();
                for(Tea t:list){
                    sb.append(t.getProduct_cat_name());
                }
                tv.setText(sb.toString());
            }
        }

        @Override
        public void onFailure(Call<List<Tea>> call, Throwable t) {

        }
    });

}

Constant类中存储的是网络数据的地址
public final static String TEABASE_URL="http://42.120.4.67/api/app/business/";

定义一个接口存放get请求
public interface INewsBiz {
    /*
    通过@GET注解标示为get请求 @GET中填写的valuebaseUrl指定的地址组成完成的访问路径
    baseUrl构造retrofit对象时指定
    */
    @GET("category?app_id=161")
    Call<List<Tea>> getTeas();
}

NewsInfo为数据的实体类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值