Retrofit框架笔记02

本示例演示从服务器获取Json数据展示到客户端

接口地址:http://www.tngou.net/api/news/classify?id=1
该接口返回的Json为:

这里写图片描述

1、定义接口
/**
 * 测试接口只需要一个id参数
 */
public interface INewsService
{
    @GET("/api/news/classify")
    Call<TnGou> getNewsList(@Query("id") int id);
}
2、根据接口的json数据,创建实体类
/**
 * 新闻Json实体类
 */
public class TnGou
{
    //此注解是必须
    @SerializedName("status")
    public String status;

    @SerializedName("tngou")
    public ArrayList<Newsclass> list;
}
/**
 * 新闻内容
 */
public class Newsclass
{
    @SerializedName("name")
    public String name;
    @SerializedName("title")
    public String title;
    @SerializedName("keywords")
    public String keywords;
    @SerializedName("description")
    public String description;
    @SerializedName("newsclass")
    public int newsclass;//二级分类
    @SerializedName("newclass")
    public int newclass;//一级分类
    @SerializedName("seq")
    public int seq;//排序 从0。。。。10开始
}
3、使用Retrofit请求接口,填充数据
 Retrofit retrofit = new Retrofit
                .Builder()
                .baseUrl("http://www.tngou.net")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        INewsService newsService = retrofit.create(INewsService.class);

        Call<TnGou> newsList = newsService.getNewsList(1);

        newsList.enqueue(new Callback<TnGou>()
        {
            @Override
            public void onResponse(Call<TnGou> call, Response<TnGou> response)
            {
                //获取到数据,打印
                TnGou body = response.body();
                ArrayList<Newsclass> list = body.list;
                for (int i = 0; i < list.size(); i++)
                {
                    Newsclass newsclass = list.get(i);
                    System.out.println(newsclass.title);
                }
            }

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

            }
        });

请注意:以上onResponse方法是在UI线程中执行的,和OkHttp不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值