Android开发-Retrofit-AndroidStudio(二)Json

文字说明都在代码和图片上了。

唯一要注意的是,Json或者图片等工程类包,需要自己去官网下载~~

另外,这边还用到一个Google的注解jar包~~






Cook.java::

package com.iwanghang.retrofitdemo;

import com.google.gson.annotations.SerializedName;

/**
 * @SerializedName 表示注解
 */
public class Cook {
    @SerializedName("id")
    private int id;
    @SerializedName("name")
    private String name;//名称
    @SerializedName("food")
    private String  food;//食物
    @SerializedName("img")
    private String img;//图片
    @SerializedName("images")
    private String images;//图片,
    @SerializedName("description")
    private String description;//描述
    @SerializedName("keywords")
    private String keywords;//关键字
    @SerializedName("message")
    private String message;//资讯内容
    @SerializedName("count")
    private int count ;//访问次数
    @SerializedName("fcount")
    private int fcount;//收藏数
    @SerializedName("rcount")
    private int rcount;//评论读数

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFood() {
        return food;
    }

    public void setFood(String food) {
        this.food = food;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getFcount() {
        return fcount;
    }

    public void setFcount(int fcount) {
        this.fcount = fcount;
    }

    public int getRcount() {
        return rcount;
    }

    public void setRcount(int rcount) {
        this.rcount = rcount;
    }
}

Tngou.java:

package com.iwanghang.retrofitdemo;

import com.google.gson.annotations.SerializedName;

import java.util.List;

/**
 * @SerializedName 表示注解
 */
public class Tngou {
    @SerializedName("status")
    private boolean status;
    @SerializedName("total")
    private int total;
    @SerializedName("tngou")
    private List<Cook> list;

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public List<Cook> getList() {
        return list;
    }

    public void setList(List<Cook> list) {
        this.list = list;
    }
}

Service.java:

package com.iwanghang.retrofitdemo;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * http://www.tngou.net/doc/cook/71
 *
 * 请求参数
 *  参数	必选	类型	说明
 * page	否	int	请求页数,默认page=1
 * rows	否	int	每页返回的条数,默认rows=20
 * id	否	int	分类ID,默认返回的是全部。这里的ID就是指分类
 *
 * @Query 表示注解
 */
public interface Service {
    @GET("/api/cook/list")
    Call<Tngou> getList(@Query("id") int id, @Query("page") int page, @Query("rows") int rows);
}

MainActivity.java:

package com.iwanghang.retrofitdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import com.iwanghang.retrofitdemo.gson.GsonConverterFactory;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;

/**
 * Retrofit官方Demo
 * https://github.com/square/retrofit
 */
public class MainActivity extends AppCompatActivity implements Callback<Tngou> {

    TextView main_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * 实例化Retrofit
         * Converter 转换器 可以转换任意数据类型
         */
        Retrofit retrofit =
                new Retrofit.Builder().baseUrl("http://www.tngou.net")
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();
        Service service = retrofit.create(Service.class);
        Call<Tngou> call = service.getList(0, 1, 20);
        call.enqueue(this);

        main_text = (TextView) findViewById(R.id.main_text);

    }

    // 异步请求 成功
    @Override
    public void onResponse(Call<Tngou> call, Response<Tngou> response) {
        Toast.makeText(this, "请求成功", Toast.LENGTH_SHORT).show();
        List<Cook> list = response.body().getList();
        main_text.setText(list.toString());
    }

    // 异步请求 失败
    @Override
    public void onFailure(Call<Tngou> call, Throwable t) {
        Toast.makeText(this, "请求失败"+call.request().url(), Toast.LENGTH_SHORT).show();
        t.printStackTrace();
    }

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值