我的第一个Retrofit小demo
来源:互联网 发布:机械设计3d软件 编辑:程序博客网 时间:2024/04/29 17:38
先看下项目结构
MainActivity
package com.cisetech.myretrofitdemo;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.Toast;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TvService tvService = RetrofitWrapper.getInstance().create(TvService.class); Call<TvInfo> call = tvService.getTvInfoList( "1", "8a7204eb63ba0bab009b338025f42df2" ); call.enqueue( new Callback<TvInfo>() { @Override public void onResponse(Call<TvInfo> call, Response<TvInfo> response) { TvInfo tv = response.body(); //这里显示了列表中的第一条的内容,所以get(0) Toast.makeText( MainActivity.this, tv.getResult().get(0).getChannelName(), Toast.LENGTH_LONG ).show(); Log.i(TAG,response.body().toString()); } @Override public void onFailure(Call<TvInfo> call, Throwable t) { Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_LONG).show(); } } ); }}
RetrofitWrapper
package com.cisetech.myretrofitdemo;import android.content.Context;import retrofit2.GsonConverterFactory;import retrofit2.Retrofit;/** * Created by Jaycee on 16/4/19. * E-mail:jayceeok@foxmail.com */public class RetrofitWrapper { private static RetrofitWrapper instance; private Context mContext; private Retrofit retrofit; private RetrofitWrapper() { retrofit = new Retrofit.Builder().baseUrl(Constant.BASE_URL).addConverterFactory( GsonConverterFactory.create()).build(); } public static RetrofitWrapper getInstance() { if (instance == null) { synchronized (RetrofitWrapper.class) { instance = new RetrofitWrapper(); } } return instance; } public <T> T create(Class<T> service) { return retrofit.create(service); } public class Constant { public static final String BASE_URL = "http://japi.juhe.cn"; }}
TvInfo
package com.cisetech.myretrofitdemo;import java.util.List;/** * Created by Jaycee on 16/4/19. * E-mail:jayceeok@foxmail.com */public class TvInfo { /** * error_code : 0 * reason : Success! * result : [{"channelName":"CCTV-1 综合","pId":1,"rel":"cctv1","url":"http://tv.cntv.cn/live/cctv1"},{"channelName":"CCTV-2 财经","pId":1,"rel":"cctv2","url":"http://tv.cntv.cn/live/cctv2"},{"channelName":"CCTV-3 综艺","pId":1,"rel":"cctv3","url":"http://tv.cntv.cn/live/cctv3"},{"channelName":"CCTV-4 (亚洲)","pId":1,"rel":"cctv4","url":"http://tv.cntv.cn/live/cctv4"},{"channelName":"CCTV-4 (欧洲)","pId":1,"rel":"cctveurope","url":"http://tv.cntv.cn/live/cctveurope"},{"channelName":"CCTV-4 (美洲)","pId":1,"rel":"cctvamerica","url":"http://tv.cntv.cn/live/cctvamerica"},{"channelName":"CCTV-5 体育","pId":1,"rel":"cctv5","url":"http://tv.cntv.cn/live/cctv5"},{"channelName":"CCTV-6 电影","pId":1,"rel":"cctv6","url":"http://tv.cntv.cn/live/cctv6"},{"channelName":"CCTV-7 军事农业","pId":1,"rel":"cctv7","url":"http://tv.cntv.cn/live/cctv7"},{"channelName":"CCTV-8 电视剧","pId":1,"rel":"cctv8","url":"http://tv.cntv.cn/live/cctv8"},{"channelName":"CCTV-9 纪录","pId":1,"rel":"cctvjilu","url":"http://tv.cntv.cn/live/cctvjilu"},{"channelName":"CCTV-9 纪录(英)","pId":1,"rel":"cctvdoc","url":"http://tv.cntv.cn/live/cctvdoc"},{"channelName":"CCTV-10 科教","pId":1,"rel":"cctv10","url":"http://tv.cntv.cn/live/cctv10"},{"channelName":"CCTV-11 戏曲","pId":1,"rel":"cctv11","url":"http://tv.cntv.cn/live/cctv11"},{"channelName":"CCTV-12 社会与法","pId":1,"rel":"cctv12","url":"http://tv.cntv.cn/live/cctv12"},{"channelName":"CCTV-13 新闻","pId":1,"rel":"cctv13","url":"http://tv.cntv.cn/live/cctv13"},{"channelName":"CCTV-14 少儿","pId":1,"rel":"cctvchild","url":"http://tv.cntv.cn/live/cctvchild"},{"channelName":"CCTV-15 音乐","pId":1,"rel":"cctv15","url":"http://tv.cntv.cn/live/cctv15"},{"channelName":"CCTV-NEWS","pId":1,"rel":"cctv9","url":"http://tv.cntv.cn/live/cctv9"},{"channelName":"CCTV-Français","pId":1,"rel":"cctvfrench","url":"http://tv.cntv.cn/live/cctvfrench"},{"channelName":"CCTV-Español","pId":1,"rel":"cctvxiyu","url":"http://tv.cntv.cn/live/cctvxiyu"},{"channelName":"CCTV-العربية","pId":1,"rel":"cctvarabic","url":"http://tv.cntv.cn/live/cctvarabic"},{"channelName":"CCTV-Русский","pId":1,"rel":"cctvrussian","url":"http://tv.cntv.cn/live/cctvrussian"},{"channelName":"CCTV体育赛事","pId":1,"rel":"cctv5plus","url":"http://tv.cntv.cn/live/cctv5plus"}] */ private int error_code; private String reason; /** * channelName : CCTV-1 综合 * pId : 1 * rel : cctv1 * url : http://tv.cntv.cn/live/cctv1 */ private List<ResultEntity> result; public int getError_code() { return error_code;} public void setError_code(int error_code) { this.error_code = error_code;} public String getReason() { return reason;} public void setReason(String reason) { this.reason = reason;} public List<ResultEntity> getResult() { return result;} public void setResult(List<ResultEntity> result) { this.result = result;} public static class ResultEntity { private String channelName; private int pId; private String rel; private String url; public String getChannelName() { return channelName;} public void setChannelName(String channelName) { this.channelName = channelName;} public int getPId() { return pId;} public void setPId(int pId) { this.pId = pId;} public String getRel() { return rel;} public void setRel(String rel) { this.rel = rel;} public String getUrl() { return url;} public void setUrl(String url) { this.url = url;} }}
TvService
package com.cisetech.myretrofitdemo;import retrofit2.Call;import retrofit2.http.GET;import retrofit2.http.Query;/** * Created by Jaycee on 16/4/19. * E-mail:jayceeok@foxmail.com * http://japi.juhe.cn */public interface TvService { @GET("/tv/getChannel") Call<TvInfo> getTvInfoList(@Query("pId") String pId, @Query("key") String key);}
1 0
- 我的第一个Retrofit小demo
- 我的第一个小demo
- 我的第一个android kotlin小demo 文件选择器
- 我的第一个demo!
- NDK_JNI 第一个完整的 小DEMO
- 我的第一个iOS Demo
- Unity - 2D入门,今天我的第一个小Demo发布啦
- 第一个ajax小demo
- 第一个spring小demo
- MVP第一个小demo
- 我的第一个小项目
- 我的IBatisNet第一个小程序
- 我的第一个Python小程序
- 我的第一个JAVA小程序
- 我的第一个java小程序
- 我的第一个qt小程序
- 我的第一个Activiti小程序
- 我的第一个小爬虫
- 三位数乘一位数
- IIS的安装和牛腩发布
- leetcode 063 Unique Paths II
- 单例模式例子
- n位数乘一位数
- 我的第一个Retrofit小demo
- 欢迎使用CSDN-markdown编辑器
- 《Head First-Chapter4》工厂模式
- 用配置文件存储连接数据库的字符串
- mipmap 只是放 launcher icons
- loadbalancer linux下tomcat负载均衡配置
- 学习安排
- C++类中const函数与非const函数的调用规则
- [解决]UserLibrary中的jar包不会自动发布Tomcat的lib目录下(基于MyEclipse2014)