25
25
import okhttp3 .Response ;
26
26
27
27
public class RequestNetworkController {
28
- public static final String GET = "GET" ;
29
- public static final String POST = "POST" ;
30
- public static final String PUT = "PUT" ;
31
- public static final String DELETE = "DELETE" ;
32
-
33
- public static final int REQUEST_PARAM = 0 ;
34
- public static final int REQUEST_BODY = 1 ;
35
-
36
- private static final int SOCKET_TIMEOUT = 15000 ;
37
- private static final int READ_TIMEOUT = 25000 ;
38
-
39
- protected OkHttpClient client ;
40
-
41
- private static RequestNetworkController mInstance ;
42
-
43
- public static synchronized RequestNetworkController getInstance () {
44
- if (mInstance == null ) {
45
- mInstance = new RequestNetworkController ();
46
- }
47
- return mInstance ;
48
- }
49
-
50
- private OkHttpClient getClient () {
51
- if (client == null ) {
52
- OkHttpClient .Builder builder = new OkHttpClient .Builder ();
53
-
54
- try {
55
- final TrustManager [] trustAllCerts = new TrustManager []{
56
- new X509TrustManager () {
57
- @ Override
58
- public void checkClientTrusted (java .security .cert .X509Certificate [] chain , String authType )
59
- throws CertificateException {
60
- }
61
-
62
- @ Override
63
- public void checkServerTrusted (java .security .cert .X509Certificate [] chain , String authType )
64
- throws CertificateException {
65
- }
66
-
67
- @ Override
68
- public java .security .cert .X509Certificate [] getAcceptedIssuers () {
69
- return new java .security .cert .X509Certificate []{};
70
- }
71
- }
72
- };
73
-
74
- final SSLContext sslContext = SSLContext .getInstance ("TLS" );
75
- sslContext .init (null , trustAllCerts , new java .security .SecureRandom ());
76
- final SSLSocketFactory sslSocketFactory = sslContext .getSocketFactory ();
77
- builder .sslSocketFactory (sslSocketFactory , (X509TrustManager ) trustAllCerts [0 ]);
78
- builder .connectTimeout (SOCKET_TIMEOUT , TimeUnit .MILLISECONDS );
79
- builder .readTimeout (READ_TIMEOUT , TimeUnit .MILLISECONDS );
80
- builder .writeTimeout (READ_TIMEOUT , TimeUnit .MILLISECONDS );
81
- builder .hostnameVerifier (new HostnameVerifier () {
82
- @ Override
83
- public boolean verify (String hostname , SSLSession session ) {
84
- return true ;
85
- }
86
- });
87
- } catch (Exception e ) {
88
- }
89
-
90
- client = builder .build ();
91
- }
92
-
93
- return client ;
94
- }
95
-
96
- public void execute (final RequestNetwork requestNetwork , String method , String url , final String tag , final RequestNetwork .RequestListener requestListener ) {
97
- Request .Builder reqBuilder = new Request .Builder ();
98
- Headers .Builder headerBuilder = new Headers .Builder ();
99
-
100
- if (requestNetwork .getHeaders ().size () > 0 ) {
101
- HashMap <String , Object > headers = requestNetwork .getHeaders ();
102
-
103
- for (HashMap .Entry <String , Object > header : headers .entrySet ()) {
104
- headerBuilder .add (header .getKey (), String .valueOf (header .getValue ()));
105
- }
106
- }
107
-
108
- try {
109
- if (requestNetwork .getRequestType () == REQUEST_PARAM ) {
110
- if (method .equals (GET )) {
111
- HttpUrl .Builder httpBuilder ;
112
-
113
- try {
114
- httpBuilder = HttpUrl .parse (url ).newBuilder ();
115
- } catch (NullPointerException ne ) {
116
- throw new NullPointerException ("unexpected url: " + url );
117
- }
118
-
119
- if (requestNetwork .getParams ().size () > 0 ) {
120
- HashMap <String , Object > params = requestNetwork .getParams ();
121
-
122
- for (HashMap .Entry <String , Object > param : params .entrySet ()) {
123
- httpBuilder .addQueryParameter (param .getKey (), String .valueOf (param .getValue ()));
124
- }
125
- }
126
-
127
- reqBuilder .url (httpBuilder .build ()).headers (headerBuilder .build ()).get ();
128
- } else {
129
- FormBody .Builder formBuilder = new FormBody .Builder ();
130
- if (requestNetwork .getParams ().size () > 0 ) {
131
- HashMap <String , Object > params = requestNetwork .getParams ();
132
-
133
- for (HashMap .Entry <String , Object > param : params .entrySet ()) {
134
- formBuilder .add (param .getKey (), String .valueOf (param .getValue ()));
135
- }
136
- }
137
-
138
- RequestBody reqBody = formBuilder .build ();
139
-
140
- reqBuilder .url (url ).headers (headerBuilder .build ()).method (method , reqBody );
141
- }
142
- } else {
143
- RequestBody reqBody = RequestBody .create (okhttp3 .MediaType .parse ("application/json" ), new Gson ().toJson (requestNetwork .getParams ()));
144
-
145
- if (method .equals (GET )) {
146
- reqBuilder .url (url ).headers (headerBuilder .build ()).get ();
147
- } else {
148
- reqBuilder .url (url ).headers (headerBuilder .build ()).method (method , reqBody );
149
- }
150
- }
151
-
152
- Request req = reqBuilder .build ();
153
-
154
- getClient ().newCall (req ).enqueue (new Callback () {
155
- @ Override
156
- public void onFailure (Call call , final IOException e ) {
157
- requestNetwork .getActivity ().runOnUiThread (new Runnable () {
158
- @ Override
159
- public void run () {
160
- requestListener .onErrorResponse (tag , e .getMessage ());
161
- }
162
- });
163
- }
164
-
165
- @ Override
166
- public void onResponse (Call call , final Response response ) throws IOException {
167
- final String responseBody = response .body ().string ().trim ();
168
- requestNetwork .getActivity ().runOnUiThread (new Runnable () {
169
- @ Override
170
- public void run () {
171
- requestListener .onResponse (tag , responseBody );
172
- }
173
- });
174
- }
175
- });
176
- } catch (Exception e ) {
177
- requestListener .onErrorResponse (tag , e .getMessage ());
178
- }
28
+ public static final String GET = "GET" ;
29
+ public static final String POST = "POST" ;
30
+ public static final String PUT = "PUT" ;
31
+ public static final String DELETE = "DELETE" ;
32
+
33
+ public static final int REQUEST_PARAM = 0 ;
34
+ public static final int REQUEST_BODY = 1 ;
35
+
36
+ private static final int SOCKET_TIMEOUT = 15000 ;
37
+ private static final int READ_TIMEOUT = 25000 ;
38
+
39
+ protected OkHttpClient client ;
40
+
41
+ private static RequestNetworkController mInstance ;
42
+
43
+ public static synchronized RequestNetworkController getInstance () {
44
+ if (mInstance == null ) {
45
+ mInstance = new RequestNetworkController ();
46
+ }
47
+ return mInstance ;
48
+ }
49
+
50
+ private OkHttpClient getClient () {
51
+ if (client == null ) {
52
+ OkHttpClient .Builder builder = new OkHttpClient .Builder ();
53
+
54
+ try {
55
+ final TrustManager [] trustAllCerts = new TrustManager [] {
56
+ new X509TrustManager () {
57
+ @ Override
58
+ public void checkClientTrusted (java .security .cert .X509Certificate [] chain , String authType )
59
+ throws CertificateException {}
60
+
61
+ @ Override
62
+ public void checkServerTrusted (java .security .cert .X509Certificate [] chain , String authType )
63
+ throws CertificateException {}
64
+
65
+ @ Override
66
+ public java .security .cert .X509Certificate [] getAcceptedIssuers () {
67
+ return new java .security .cert .X509Certificate [] {};
68
+ }
69
+ }
70
+ };
71
+
72
+ final SSLContext sslContext = SSLContext .getInstance ("TLS" );
73
+ sslContext .init (null , trustAllCerts , new java .security .SecureRandom ());
74
+ final SSLSocketFactory sslSocketFactory = sslContext .getSocketFactory ();
75
+ builder .sslSocketFactory (sslSocketFactory , (X509TrustManager ) trustAllCerts [0 ]);
76
+ builder .connectTimeout (SOCKET_TIMEOUT , TimeUnit .MILLISECONDS );
77
+ builder .readTimeout (READ_TIMEOUT , TimeUnit .MILLISECONDS );
78
+ builder .writeTimeout (READ_TIMEOUT , TimeUnit .MILLISECONDS );
79
+ builder .hostnameVerifier (new HostnameVerifier () {
80
+ @ Override
81
+ public boolean verify (String hostname , SSLSession session ) {
82
+ return true ;
83
+ }
84
+ });
85
+ } catch (Exception e ) {}
86
+
87
+ client = builder .build ();
88
+ }
89
+
90
+ return client ;
91
+ }
92
+
93
+ public void execute (final RequestNetwork requestNetwork , String method , String url , final String tag , final RequestNetwork .RequestListener requestListener ) {
94
+ Request .Builder reqBuilder = new Request .Builder ();
95
+ Headers .Builder headerBuilder = new Headers .Builder ();
96
+
97
+ if (requestNetwork .getHeaders ().size () > 0 ) {
98
+ HashMap < String , Object > headers = requestNetwork .getHeaders ();
99
+
100
+ for (HashMap .Entry < String , Object > header : headers .entrySet ()) {
101
+ headerBuilder .add (header .getKey (), String .valueOf (header .getValue ()));
102
+ }
103
+ }
104
+
105
+ try {
106
+ if (requestNetwork .getRequestType () == REQUEST_PARAM ) {
107
+ if (method .equals (GET )) {
108
+ HttpUrl .Builder httpBuilder ;
109
+
110
+ try {
111
+ httpBuilder = HttpUrl .parse (url ).newBuilder ();
112
+ } catch (NullPointerException ne ) {
113
+ throw new NullPointerException ("unexpected url: " + url );
114
+ }
115
+
116
+ if (requestNetwork .getParams ().size () > 0 ) {
117
+ HashMap < String , Object > params = requestNetwork .getParams ();
118
+
119
+ for (HashMap .Entry < String , Object > param : params .entrySet ()) {
120
+ httpBuilder .addQueryParameter (param .getKey (), String .valueOf (param .getValue ()));
121
+ }
122
+ }
123
+
124
+ reqBuilder .url (httpBuilder .build ()).headers (headerBuilder .build ()).get ();
125
+ } else {
126
+ FormBody .Builder formBuilder = new FormBody .Builder ();
127
+ if (requestNetwork .getParams ().size () > 0 ) {
128
+ HashMap < String , Object > params = requestNetwork .getParams ();
129
+
130
+ for (HashMap .Entry < String , Object > param : params .entrySet ()) {
131
+ formBuilder .add (param .getKey (), String .valueOf (param .getValue ()));
132
+ }
133
+ }
134
+
135
+ RequestBody reqBody = formBuilder .build ();
136
+
137
+ reqBuilder .url (url ).headers (headerBuilder .build ()).method (method , reqBody );
138
+ }
139
+ } else {
140
+ RequestBody reqBody = RequestBody .create (okhttp3 .MediaType .parse ("application/json" ), new Gson ().toJson (requestNetwork .getParams ()));
141
+
142
+ if (method .equals (GET )) {
143
+ reqBuilder .url (url ).headers (headerBuilder .build ()).get ();
144
+ } else {
145
+ reqBuilder .url (url ).headers (headerBuilder .build ()).method (method , reqBody );
146
+ }
147
+ }
148
+
149
+ Request req = reqBuilder .build ();
150
+
151
+ getClient ().newCall (req ).enqueue (new Callback () {
152
+ @ Override
153
+ public void onFailure (Call call , final IOException e ) {
154
+ requestNetwork .getActivity ().runOnUiThread (new Runnable () {
155
+ @ Override
156
+ public void run () {
157
+ requestListener .onErrorResponse (tag , e .getMessage ());
158
+ }
159
+ });
160
+ }
161
+
162
+ @ Override
163
+ public void onResponse (Call call , final Response response ) throws IOException {
164
+ final String responseBody = response .body ().string ().trim ();
165
+ requestNetwork .getActivity ().runOnUiThread (new Runnable () {
166
+ @ Override
167
+ public void run () {
168
+ requestListener .onResponse (tag , responseBody );
169
+ }
170
+ });
171
+ }
172
+ });
173
+ } catch (Exception e ) {
174
+ requestListener .onErrorResponse (tag , e .getMessage ());
175
+ }
176
+ }
179
177
}
180
- }
0 commit comments