41
41
42
42
/**
43
43
* Created by bailong on 15/11/12.
44
+ *
45
+ * @hidden
44
46
*/
45
47
public final class Client {
48
+ /**
49
+ * HTTP 请求头:Content-Type
50
+ */
46
51
public static final String ContentTypeHeader = "Content-Type" ;
52
+
53
+ /**
54
+ * HTTP 请求默认的 MimeType
55
+ */
47
56
public static final String DefaultMime = "application/octet-stream" ;
57
+
58
+ /**
59
+ * HTTP 请求 Json 的 MimeType
60
+ */
48
61
public static final String JsonMime = "application/json" ;
62
+
63
+ /**
64
+ * HTTP 请求 FormMime 的 MimeType
65
+ */
49
66
public static final String FormMime = "application/x-www-form-urlencoded" ;
67
+
50
68
private final UrlConverter converter ;
51
69
private OkHttpClient httpClient ;
52
70
71
+ /**
72
+ * 构造方法
73
+ */
53
74
public Client () {
54
75
this (null , 10 , 30 , null , null );
55
76
}
56
77
78
+ /**
79
+ * 构造函数
80
+ *
81
+ * @param proxy 请求代理
82
+ * @param connectTimeout 请求建立连接超时时间
83
+ * @param responseTimeout 请求接收数据超时时间
84
+ * @param converter 请求 Url 拦截器
85
+ * @param dns 请求的 Dns 解析器
86
+ */
57
87
public Client (ProxyConfiguration proxy , int connectTimeout , int responseTimeout , UrlConverter converter , final Dns dns ) {
58
88
this .converter = converter ;
59
89
OkHttpClient .Builder builder = new OkHttpClient .Builder ();
@@ -71,9 +101,9 @@ public List<InetAddress> lookup(String hostname) throws UnknownHostException {
71
101
List <IDnsNetworkAddress > networkAddressList = DnsPrefetcher .getInstance ().getInetAddressByHost (hostname );
72
102
if (networkAddressList != null && networkAddressList .size () > 0 ) {
73
103
List <InetAddress > inetAddressList = new ArrayList <>();
74
- for (IDnsNetworkAddress networkAddress : networkAddressList ){
104
+ for (IDnsNetworkAddress networkAddress : networkAddressList ) {
75
105
InetAddress address = null ;
76
- if (networkAddress .getIpValue () != null && (address = InetAddress .getByName (networkAddress .getIpValue ())) != null ){
106
+ if (networkAddress .getIpValue () != null && (address = InetAddress .getByName (networkAddress .getIpValue ())) != null ) {
77
107
inetAddressList .add (address );
78
108
}
79
109
}
@@ -210,6 +240,15 @@ public void run() {
210
240
});
211
241
}
212
242
243
+ /**
244
+ * 异步请求
245
+ *
246
+ * @param requestBuilder 请求构造器
247
+ * @param headers 请求头
248
+ * @param upToken 上传 Token
249
+ * @param totalSize 请求体大小
250
+ * @param complete 结束回调
251
+ */
213
252
public void asyncSend (final Request .Builder requestBuilder , StringMap headers , final UpToken upToken ,
214
253
final long totalSize , final CompletionHandler complete ) {
215
254
if (headers != null ) {
@@ -259,13 +298,39 @@ public void onResponse(Call call, okhttp3.Response response) throws IOException
259
298
});
260
299
}
261
300
301
+ /**
302
+ * 异步 POST 请求
303
+ *
304
+ * @param url 请求 url
305
+ * @param body 请求 body
306
+ * @param headers 请求 header
307
+ * @param upToken 上传 token
308
+ * @param totalSize 请求总大小
309
+ * @param progressHandler 请求进度回调
310
+ * @param completionHandler 结束回调
311
+ * @param c 取消回调
312
+ */
262
313
public void asyncPost (String url , byte [] body ,
263
314
StringMap headers , final UpToken upToken ,
264
315
final long totalSize , ProgressHandler progressHandler ,
265
316
CompletionHandler completionHandler , UpCancellationSignal c ) {
266
317
asyncPost (url , body , 0 , body .length , headers , upToken , totalSize , progressHandler , completionHandler , c );
267
318
}
268
319
320
+ /**
321
+ * 异步 POST 请求
322
+ *
323
+ * @param url 请求 Url
324
+ * @param body 请求体
325
+ * @param offset 请求体偏移量
326
+ * @param size 请求体大小
327
+ * @param headers 请求 Header
328
+ * @param upToken 上传 Token
329
+ * @param totalSize 请求体总大小
330
+ * @param progressHandler 进度回调
331
+ * @param completionHandler 完成回调
332
+ * @param c 取消回调
333
+ */
269
334
public void asyncPost (String url , byte [] body , int offset , int size ,
270
335
StringMap headers , final UpToken upToken ,
271
336
final long totalSize , ProgressHandler progressHandler ,
@@ -295,6 +360,16 @@ public void asyncPost(String url, byte[] body, int offset, int size,
295
360
asyncSend (requestBuilder , headers , upToken , totalSize , completionHandler );
296
361
}
297
362
363
+ /**
364
+ * 异步表单请求
365
+ *
366
+ * @param url 请求 Url
367
+ * @param args 请求参数
368
+ * @param upToken 上传的 Token
369
+ * @param progressHandler 进度回调
370
+ * @param completionHandler 完成回答
371
+ * @param c 取消回调
372
+ */
298
373
public void asyncMultipartPost (String url ,
299
374
PostArgs args ,
300
375
final UpToken upToken ,
@@ -343,12 +418,27 @@ public void accept(String key, Object value) {
343
418
asyncSend (requestBuilder , null , upToken , totalSize , completionHandler );
344
419
}
345
420
421
+ /**
422
+ * 异步 GET 请求
423
+ *
424
+ * @param url 请求 Url
425
+ * @param headers 请求 Header
426
+ * @param upToken 上传的 Token
427
+ * @param completionHandler 请求完成回调
428
+ */
346
429
public void asyncGet (String url , StringMap headers , final UpToken upToken ,
347
430
CompletionHandler completionHandler ) {
348
431
Request .Builder requestBuilder = new Request .Builder ().get ().url (url );
349
432
asyncSend (requestBuilder , headers , upToken , 0 , completionHandler );
350
433
}
351
434
435
+ /**
436
+ * 同步 GET 请求
437
+ *
438
+ * @param url 请求 Url
439
+ * @param headers 请求 Header
440
+ * @return ResponseInfo
441
+ */
352
442
public ResponseInfo syncGet (String url , StringMap headers ) {
353
443
Request .Builder requestBuilder = new Request .Builder ().get ().url (url );
354
444
return send (requestBuilder , headers );
@@ -379,8 +469,15 @@ public void accept(String key, Object value) {
379
469
return buildResponseInfo (res , tag .ip , tag .duration , null , 0 );
380
470
}
381
471
382
- public ResponseInfo syncMultipartPost (String url , PostArgs args ,
383
- final UpToken upToken ) {
472
+ /**
473
+ * 同步表单请求
474
+ *
475
+ * @param url 请求 Url
476
+ * @param args 请求参数
477
+ * @param upToken 上传 Token
478
+ * @return ResponseInfo
479
+ */
480
+ public ResponseInfo syncMultipartPost (String url , PostArgs args , final UpToken upToken ) {
384
481
RequestBody file ;
385
482
long totalSize ;
386
483
if (args .file != null ) {
@@ -414,6 +511,15 @@ public void accept(String key, Object value) {
414
511
return syncSend (requestBuilder , null , upToken , totalSize );
415
512
}
416
513
514
+ /**
515
+ * 同步请求
516
+ *
517
+ * @param requestBuilder 请求构造器
518
+ * @param headers 请求 Header
519
+ * @param upToken 上传的 Token
520
+ * @param totalSize 请求体大小
521
+ * @return ResponseInfo
522
+ */
417
523
public ResponseInfo syncSend (final Request .Builder requestBuilder , StringMap headers ,
418
524
final UpToken upToken , final long totalSize ) {
419
525
if (headers != null ) {
0 commit comments