Retrofit2.0的简单使用 (包含Gson)
2017-10-15 01:53
295 查看
http://blog.csdn.net/bskfnvjtlyzmv867/article/details/70667041 (转)
Retrofit2使用(非常简洁易懂)
添加依赖
compile ‘com.squareup.retrofit2:retrofit:2.2.0’
compile ‘com.squareup.retrofit2:converter-gson:2.2.0’
AndroidStudio添加Gson插件——GsonFormat
所用api:http://www.mrsorrow.xin/pro/rank_querySpecRankByUniv?university.univCode=10280&page=1
功能:根据高校代码进行学科专业类排名
返回json如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
定义接口(封装URL地址和数据请求) :
2
3
4
5
实例化Retrofit:
2
3
4
通过Retrofit实例创建接口服务对象
2
ResponseBody中存放着我们请求的数据,调用response.body().string()转化为字符串:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
新建Bean类——SpecRank.java
类中右键Generate–》GsonFormat,将json样例拷贝进AS,点击ok即可
生成如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
定义接口(封装URL地址和数据请求) :
2
3
4
5
实例化Retrofit:
2
3
4
5
将请求的数据可以直接转换为我们的Bean,通过各种get方法获取我们想要的数据:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
参考博客:
Retrofit2使用(非常简洁易懂)
实现效果:
使用姿势:
1. 使用教程
添加依赖 compile ‘com.squareup.retrofit2:retrofit:2.2.0’
compile ‘com.squareup.retrofit2:converter-gson:2.2.0’
AndroidStudio添加Gson插件——GsonFormat
2. 使用API
所用api:http://www.mrsorrow.xin/pro/rank_querySpecRankByUniv?university.univCode=10280&page=1功能:根据高校代码进行学科专业类排名
返回json如下:
{ "rows": [ { "id": 1893, "specCode": "", "specName": "冶金工程类", "univCode": "10280", "univName": "上海大学", "univRank": "5", "univScore": "78" }, { "id": 328, "specCode": "0303", "specName": "社会学类", "univCode": "10280", "univName": "上海大学", "univRank": "8", "univScore": "77" }, { "id": 828, "specCode": "0503", "specName": "新闻传播学类", "univCode": "10280", "univName": "上海大学", "univRank": "10", "univScore": "77" }, { "id": 3959, "specCode": "1303", "specName": "戏剧与影视学类", "univCode": "10280", "univName": "上海大学", "univRank": "4", "univScore": "77" }, { "id": 396, "specCode": "0305", "specName": "马克思主义理论类", "univCode": "10280", "univName": "上海大学", "univRank": "17", "univScore": "76" } ] }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
3. 入门使用Retrofit
定义接口(封装URL地址和数据请求) :@GET("rank_querySpecRankByUniv") Call<ResponseBody> querySpecRankByUniv( @Query("university.univCode") String univCode, @Query("page") int page);1
2
3
4
5
实例化Retrofit:
Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constant.BASE_URL) .build();1
2
3
4
通过Retrofit实例创建接口服务对象
QueryRankService service = retrofit.create(QueryRankService.class);1
2
ResponseBody中存放着我们请求的数据,调用response.body().string()转化为字符串:
Call<ResponseBody> call = service.querySpecRankByUniv("10280", 1); call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { if(response.isSuccessful()){ try { String result = response.body().string(); mTextView.setText(result); } catch (IOException e) { e.printStackTrace(); } } } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { } });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4. 使用GsonFormat生成Bean
新建Bean类——SpecRank.java类中右键Generate–》GsonFormat,将json样例拷贝进AS,点击ok即可
生成如下:
package com.ping.retrofit2.beans; import java.util.List; /** * SpecRankBean * Created by Mr.sorrow on 2017/4/24. */ public class SpecRankBean { private List<RowsBean> rows; public List<RowsBean> getRows() { return rows; } public void setRows(List<RowsBean> rows) { this.rows = rows; } public static class RowsBean { /** * id : 1893 * specCode : * specName : 冶金工程类 * univCode : 10280 * univName : 上海大学 * univRank : 5 * univScore : 78 */ private int id; private String specCode; private String specName; private String univCode; private String univName; private String univRank; private String univScore; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getSpecCode() { return specCode; } public void setSpecCode(String specCode) { this.specCode = specCode; } public String getSpecName() { return specName; } public void setSpecName(String specName) { this.specName = specName; } public String getUnivCode() { return univCode; } public void setUnivCode(String univCode) { this.univCode = univCode; } public String getUnivName() { return univName; } public void setUnivName(String univName) { this.univName = univName; } public String getUnivRank() { return univRank; } public void setUnivRank(String univRank) { this.univRank = univRank; } public String getUnivScore() { return univScore; } public void setUnivScore(String univScore) { this.univScore = univScore; } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
5. 使用Gson解析
定义接口(封装URL地址和数据请求) :@GET("rank_querySpecRankByUniv") Call<SpecRankBean> querySpecRankByUnivUseGson( @Query("university.univCode") String univCode, @Query("page") int page);1
2
3
4
5
实例化Retrofit:
Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constant.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build();1
2
3
4
5
将请求的数据可以直接转换为我们的Bean,通过各种get方法获取我们想要的数据:
call.enqueue(new Callback<SpecRankBean>() { @Override public void onResponse(Call<SpecRankBean> call, Response<SpecRankBean> response) { if(response.isSuccessful()){ SpecRankBean bean = response.body(); List<SpecRankBean.RowsBean> list = bean.getRows(); String result = ""; for (SpecRankBean.RowsBean rowsBean : list) { result += rowsBean.getUnivName() + rowsBean.getSpecName() + "\n"; } mTextView.setText(result); } } @Override public void onFailure(Call<SpecRankBean> call, Throwable t) { } });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
相关文章推荐
- Android Retrofit 2.0 简单使用
- Retrofit2.0的简单使用
- retrofit 2.0 简单使用
- Android Retrofit 2.0(二)使用教程OkHttp3 + Gson + RxJava
- Android框架之路——Retrofit2.0的初窥(包含Gson)
- Retrofit2.0的简单使用
- 天气预报项目学习总结(- ButterKnife - Retrofit 2.0(okhttp) - Rxjava - Jackson - Ormlite - Mosby简单使用总结)
- Retrofit2.0详解(一简单使用)
- Retrofit2.0和Rxjava结合使用的简单记录
- Android中网络框架Retrofit2.0简单使用
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- RxJava2和Retrofit2.0的简单使用
- binbinyang-- Retrofit 2.0的简单使用(入门篇)-GET请求
- retrofit2.0的简单使用
- Retrofit2.0 简单使用总结
- Android中Retrofit2.0的简单使用
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- android 三剑客(Retrofit 2.0)简单使用
- 学习笔记——Retrofit2.0的简单使用
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架