Skip to content

Commit 7e869de

Browse files
committed
通过Rxjava+OkHttp+Json实现json2pojo的网络框架
1 parent c774ce1 commit 7e869de

14 files changed

Lines changed: 464 additions & 11 deletions

File tree

.idea/encodings.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
package com.che58.ljb.rxjava.fragment;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.TextView;
9+
10+
import com.che58.ljb.rxjava.R;
11+
import com.che58.ljb.rxjava.model.DeleteModel;
12+
import com.che58.ljb.rxjava.model.GetModel;
13+
import com.che58.ljb.rxjava.model.PostModel;
14+
import com.che58.ljb.rxjava.model.PutModel;
15+
import com.che58.ljb.rxjava.protocol2.TestProtocol;
16+
import com.trello.rxlifecycle.components.support.RxFragment;
17+
18+
import java.util.TreeMap;
19+
20+
import butterknife.Bind;
21+
import butterknife.ButterKnife;
22+
import butterknife.OnClick;
23+
import rx.android.schedulers.AndroidSchedulers;
24+
import rx.functions.Action1;
25+
26+
/**
27+
* RxJava+OkHttp+Gson
28+
* Created by ljb on 2016/4/7.
29+
*/
30+
public class Net2Fragment extends RxFragment {
31+
@Bind(R.id.tv_result)
32+
TextView tv_reuslt;
33+
34+
@Bind(R.id.tv_msg)
35+
TextView tv_msg;
36+
37+
private TestProtocol mTestProtocol;
38+
39+
@Nullable
40+
@Override
41+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
42+
View view = inflater.inflate(R.layout.fragment_net, null);
43+
ButterKnife.bind(this, view);
44+
tv_msg.setText(R.string.des_demo_net2);
45+
return view;
46+
}
47+
48+
@Override
49+
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
50+
super.onActivityCreated(savedInstanceState);
51+
mTestProtocol = new TestProtocol();
52+
}
53+
54+
@OnClick(R.id.btn_get)
55+
void click_get() {
56+
mTestProtocol.text_Get() // (1)
57+
.compose(this.<GetModel>bindToLifecycle()) // (2)
58+
.observeOn(AndroidSchedulers.mainThread()) // (3)
59+
.subscribe(new Action1<GetModel>() { // (4)
60+
@Override
61+
public void call(GetModel data) { // (5)
62+
tv_reuslt.setText("Get Result:\r\n" + data);
63+
}
64+
}, new Action1<Throwable>() {
65+
@Override
66+
public void call(Throwable throwable) { // (6)
67+
tv_reuslt.setText("Get Error:\r\n" + throwable.getMessage());
68+
}
69+
});
70+
71+
72+
}
73+
74+
@OnClick(R.id.btn_post)
75+
void click_post() {
76+
TreeMap<String, Object> params = new TreeMap<>();
77+
params.put("name", "Zeus");
78+
mTestProtocol.text_Post(params)
79+
.compose(this.<PostModel>bindToLifecycle())
80+
.observeOn(AndroidSchedulers.mainThread())
81+
.subscribe(new Action1<PostModel>() {
82+
@Override
83+
public void call(PostModel s) {
84+
tv_reuslt.setText("Post Result:\r\n" + s);
85+
}
86+
}, new Action1<Throwable>() {
87+
@Override
88+
public void call(Throwable throwable) {
89+
tv_reuslt.setText("Post Error:\r\n" + throwable.getMessage());
90+
}
91+
});
92+
}
93+
94+
@OnClick(R.id.btn_put)
95+
void click_put() {
96+
TreeMap<String, Object> params = new TreeMap<>();
97+
params.put("name", "Zeus");
98+
mTestProtocol.text_Put(params)
99+
.compose(this.<PutModel>bindToLifecycle())
100+
.observeOn(AndroidSchedulers.mainThread())
101+
.subscribe(new Action1<PutModel>() {
102+
@Override
103+
public void call(PutModel data) {
104+
tv_reuslt.setText("Put Result:\r\n" + data);
105+
}
106+
}, new Action1<Throwable>() {
107+
@Override
108+
public void call(Throwable throwable) {
109+
tv_reuslt.setText("Put Error:\r\n" + throwable.getMessage());
110+
}
111+
});
112+
}
113+
114+
@OnClick(R.id.btn_delete)
115+
void click_delete() {
116+
mTestProtocol.text_Delete()
117+
.compose(this.<DeleteModel>bindToLifecycle())
118+
.observeOn(AndroidSchedulers.mainThread())
119+
.subscribe(new Action1<DeleteModel>() {
120+
@Override
121+
public void call(DeleteModel data) {
122+
tv_reuslt.setText("Delete Result:\r\n" + data);
123+
}
124+
}, new Action1<Throwable>() {
125+
@Override
126+
public void call(Throwable throwable) {
127+
tv_reuslt.setText("Delete Error:\r\n" + throwable.getMessage());
128+
}
129+
});
130+
}
131+
132+
}

app/src/main/java/com/che58/ljb/rxjava/fragment/NetFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void call(String data) { // (5)
5757
}, new Action1<Throwable>() {
5858
@Override
5959
public void call(Throwable throwable) { // (6)
60-
tv_reuslt.setText("Get Result:\r\n" + throwable.getMessage());
60+
tv_reuslt.setText("Get Error:\r\n" + throwable.getMessage());
6161
}
6262
});
6363

@@ -79,7 +79,7 @@ public void call(String s) {
7979
}, new Action1<Throwable>() {
8080
@Override
8181
public void call(Throwable throwable) {
82-
tv_reuslt.setText("Post Result:\r\n" + throwable.getMessage());
82+
tv_reuslt.setText("Post Error:\r\n" + throwable.getMessage());
8383
}
8484
});
8585
}
@@ -99,7 +99,7 @@ public void call(String data) {
9999
}, new Action1<Throwable>() {
100100
@Override
101101
public void call(Throwable throwable) {
102-
tv_reuslt.setText("Put Result:\r\n" + throwable.getMessage());
102+
tv_reuslt.setText("Put Error:\r\n" + throwable.getMessage());
103103
}
104104
});
105105
}
@@ -117,7 +117,7 @@ public void call(String data) {
117117
}, new Action1<Throwable>() {
118118
@Override
119119
public void call(Throwable throwable) {
120-
tv_reuslt.setText("Delete Result:\r\n" + throwable.getMessage());
120+
tv_reuslt.setText("Delete Error:\r\n" + throwable.getMessage());
121121
}
122122
});
123123
}

app/src/main/java/com/che58/ljb/rxjava/fragment/main/MainFragment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.che58.ljb.rxjava.fragment.CheckBoxUpdateFragment;
1313
import com.che58.ljb.rxjava.fragment.LoopFragment;
1414
import com.che58.ljb.rxjava.fragment.MergeFragment;
15+
import com.che58.ljb.rxjava.fragment.Net2Fragment;
1516
import com.che58.ljb.rxjava.fragment.PublishSubjectFragment;
1617
import com.che58.ljb.rxjava.fragment.TimerFragment;
1718
import com.che58.ljb.rxjava.fragment.ZipFragment;
@@ -42,6 +43,10 @@ void btn_net() {
4243
open(new NetFragment());
4344
}
4445

46+
@OnClick(R.id.btn_net2)
47+
void btn_net2() {
48+
open(new Net2Fragment());
49+
}
4550

4651
@OnClick(R.id.btn_not_more_click)
4752
void btn_not_more_click() {
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.che58.ljb.rxjava.model;
2+
3+
/**
4+
* Created by ljb on 2016/4/7.
5+
*/
6+
public class DeleteModel {
7+
private int code;
8+
private String message;
9+
private XgoEntity entity;
10+
11+
private class XgoEntity {
12+
private Data data;
13+
14+
private class Data {
15+
private int id;
16+
private String name;
17+
private String value;
18+
private Links links;
19+
20+
@Override
21+
public String toString() {
22+
return "Data{" +
23+
"id=" + id +
24+
", name='" + name + '\'' +
25+
", value='" + value + '\'' +
26+
", links=" + links +
27+
'}';
28+
}
29+
30+
private class Links {
31+
private String rel;
32+
private String href;
33+
34+
@Override
35+
public String toString() {
36+
return "Links{" +
37+
"rel='" + rel + '\'' +
38+
", href='" + href + '\'' +
39+
'}';
40+
}
41+
}
42+
}
43+
44+
@Override
45+
public String toString() {
46+
return "XgoEntity{" +
47+
"data=" + data +
48+
'}';
49+
}
50+
}
51+
52+
@Override
53+
public String toString() {
54+
return "DeleteModel{" +
55+
"code=" + code +
56+
", message='" + message + '\'' +
57+
", entity=" + entity +
58+
'}';
59+
}
60+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.che58.ljb.rxjava.model;
2+
3+
/**
4+
* Get数据 JavaBean
5+
* Created by ljb on 2016/4/7.
6+
*/
7+
public class GetModel {
8+
private int code;
9+
private String message;
10+
private XgoEntity entity;
11+
12+
private class XgoEntity {
13+
private Data data;
14+
15+
private class Data {
16+
private int id;
17+
private String name;
18+
private String value;
19+
private Links links;
20+
21+
@Override
22+
public String toString() {
23+
return "Data{" +
24+
"id=" + id +
25+
", name='" + name + '\'' +
26+
", value='" + value + '\'' +
27+
", links=" + links +
28+
'}';
29+
}
30+
31+
private class Links {
32+
private String rel;
33+
private String href;
34+
35+
@Override
36+
public String toString() {
37+
return "Links{" +
38+
"rel='" + rel + '\'' +
39+
", href='" + href + '\'' +
40+
'}';
41+
}
42+
}
43+
}
44+
45+
@Override
46+
public String toString() {
47+
return "XgoEntity{" +
48+
"data=" + data +
49+
'}';
50+
}
51+
}
52+
53+
@Override
54+
public String toString() {
55+
return "PostModel{" +
56+
"code=" + code +
57+
", message='" + message + '\'' +
58+
", entity=" + entity +
59+
'}';
60+
}
61+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.che58.ljb.rxjava.model;
2+
3+
/**
4+
* Created by ljb on 2016/4/7.
5+
*/
6+
public class PostModel {
7+
private int code;
8+
private String message;
9+
private XgoEntity entity;
10+
11+
private class XgoEntity {
12+
private Data data;
13+
14+
private class Data {
15+
private String xxx;
16+
17+
@Override
18+
public String toString() {
19+
return "Data{" +
20+
"xxx='" + xxx + '\'' +
21+
'}';
22+
}
23+
}
24+
25+
@Override
26+
public String toString() {
27+
return "XgoEntity{" +
28+
"data=" + data +
29+
'}';
30+
}
31+
}
32+
33+
@Override
34+
public String toString() {
35+
return "GetModel{" +
36+
"code=" + code +
37+
", message='" + message + '\'' +
38+
", entity=" + entity +
39+
'}';
40+
}
41+
}

0 commit comments

Comments
 (0)