100
100
101
101
* [ 我想自定义 Get 请求参数中的 key 和 value 该怎么做] ( #我想自定义-get-请求参数中的-key-和-value-该怎么做 )
102
102
103
+ * [ 我想在 Post 请求中定义类似 Get 请求参数该怎么做] ( #我想在-post-请求中定义类似-get-请求参数该怎么做 )
104
+
103
105
* [ 搭配 RxJava] ( #搭配-rxjava )
104
106
105
107
* [ 准备工作] ( #准备工作 )
@@ -298,10 +300,10 @@ EasyHttp.post(this)
298
300
.api(new LoginApi ()
299
301
.setUserName(" Android 轮子哥" )
300
302
.setPassword(" 123456" ))
301
- .request(new HttpCallback <HttpData<LoginBean > > (activity) {
303
+ .request(new HttpCallbackProxy <HttpData<LoginBean > > (activity) {
302
304
303
305
@Override
304
- public void onSucceed (HttpData<LoginBean > data ) {
306
+ public void onHttpSuccess (HttpData<LoginBean > data ) {
305
307
toast(" 登录成功" );
306
308
}
307
309
});
@@ -347,27 +349,27 @@ EasyHttp.post(this)
347
349
.request(new OnUpdateListener<Void > () {
348
350
349
351
@Override
350
- public void onStart (Call call ) {
352
+ public void onUpdateStart (Call call ) {
351
353
mProgressBar. setVisibility(View . VISIBLE );
352
354
}
353
355
354
356
@Override
355
- public void onProgress (int progress ) {
357
+ public void onUpdateProgressChange (int progress ) {
356
358
mProgressBar. setProgress(progress);
357
359
}
358
360
359
361
@Override
360
- public void onSucceed (Void result ) {
362
+ public void onUpdateSuccess (Void result ) {
361
363
toast(" 上传成功" );
362
364
}
363
365
364
366
@Override
365
- public void onFail (Exception e ) {
367
+ public void onUpdateFail (Exception e ) {
366
368
toast(" 上传失败" );
367
369
}
368
370
369
371
@Override
370
- public void onEnd (Call call ) {
372
+ public void onUpdateEnd (Call call ) {
371
373
mProgressBar. setVisibility(View . GONE );
372
374
}
373
375
});
@@ -391,28 +393,28 @@ EasyHttp.download(this)
391
393
.listener(new OnDownloadListener () {
392
394
393
395
@Override
394
- public void onStart (File file ) {
396
+ public void onDownloadStart (File file ) {
395
397
mProgressBar. setVisibility(View . VISIBLE );
396
398
}
397
399
398
400
@Override
399
- public void onProgress (File file , int progress ) {
401
+ public void onDownloadProgressChange (File file , int progress ) {
400
402
mProgressBar. setProgress(progress);
401
403
}
402
404
403
405
@Override
404
- public void onComplete (File file ) {
406
+ public void onDownloadSuccess (File file ) {
405
407
toast(" 下载完成:" + file. getPath());
406
408
installApk(XxxActivity . this , file);
407
409
}
408
410
409
411
@Override
410
- public void onError (File file , Exception e ) {
412
+ public void onDownloadFail (File file , Exception e ) {
411
413
toast(" 下载出错:" + e. getMessage());
412
414
}
413
415
414
416
@Override
415
- public void onEnd (File file ) {
417
+ public void onDownloadEnd (File file ) {
416
418
mProgressBar. setVisibility(View . GONE );
417
419
}
418
420
@@ -439,10 +441,10 @@ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
439
441
EasyHttp . post(this )
440
442
.api(new XxxApi ()
441
443
.setImage(outputFile))
442
- .request(new HttpCallback <Xxx <Xxx> > (this ) {
444
+ .request(new HttpCallbackProxy <Xxx <Xxx> > (this ) {
443
445
444
446
@Override
445
- public void onSucceed (Xxx<Xxx > data ) {
447
+ public void onHttpSuccess (Xxx<Xxx > data ) {
446
448
447
449
}
448
450
});
@@ -1168,10 +1170,10 @@ EasyHttp.post(MainActivity.this)
1168
1170
.api(new XxxApi ())
1169
1171
// 延迟 5 秒后请求
1170
1172
.delay(5000 )
1171
- .request(new HttpCallback <HttpData<XxxBean > > (MainActivity . this ) {
1173
+ .request(new HttpCallbackProxy <HttpData<XxxBean > > (MainActivity . this ) {
1172
1174
1173
1175
@Override
1174
- public void onSucceed (HttpData<XxxBean > result ) {
1176
+ public void onHttpSuccess (HttpData<XxxBean > result ) {
1175
1177
1176
1178
}
1177
1179
});
@@ -1203,10 +1205,10 @@ public final class XxxApi implements IRequestApi {
1203
1205
``` java
1204
1206
EasyHttp . post(this )
1205
1207
.api(new RequestUrl (" https://xxxx.com/aaaa" ))
1206
- .request(new HttpCallback <Xxx > (this ) {
1208
+ .request(new HttpCallbackProxy <Xxx > (this ) {
1207
1209
1208
1210
@Override
1209
- public void onSucceed (Xxx result ) {
1211
+ public void onHttpSuccess (Xxx result ) {
1210
1212
1211
1213
}
1212
1214
});
@@ -1244,10 +1246,10 @@ public final class HttpUrls {
1244
1246
``` java
1245
1247
EasyHttp . post(this )
1246
1248
.api(HttpUrls . GET_USER_INFO )
1247
- .request(new HttpCallback <HttpData<XxxBean > > (this ) {
1249
+ .request(new HttpCallbackProxy <HttpData<XxxBean > > (this ) {
1248
1250
1249
1251
@Override
1250
- public void onSucceed (HttpData<XxxBean > result ) {
1252
+ public void onHttpSuccess (HttpData<XxxBean > result ) {
1251
1253
1252
1254
}
1253
1255
});
@@ -1266,10 +1268,10 @@ EasyHttp.post(this)
1266
1268
``` java
1267
1269
EasyHttp . post(new ActivityLifecycle (this ))
1268
1270
.api(new XxxApi ())
1269
- .request(new HttpCallback <HttpData<XxxBean > > (this ) {
1271
+ .request(new HttpCallbackProxy <HttpData<XxxBean > > (this ) {
1270
1272
1271
1273
@Override
1272
- public void onSucceed (HttpData<XxxBean > result ) {
1274
+ public void onHttpSuccess (HttpData<XxxBean > result ) {
1273
1275
1274
1276
}
1275
1277
});
@@ -1288,12 +1290,12 @@ EasyHttp.post(ApplicationLifecycle.getInstance())
1288
1290
.request(new OnHttpListener<HttpData<XxxBean > > () {
1289
1291
1290
1292
@Override
1291
- public void onSucceed (HttpData<XxxBean > result ) {
1293
+ public void onHttpSuccess (HttpData<XxxBean > result ) {
1292
1294
1293
1295
}
1294
1296
1295
1297
@Override
1296
- public void onFail (Exception e ) {
1298
+ public void onHttpFail (Exception e ) {
1297
1299
1298
1300
}
1299
1301
});
@@ -1346,12 +1348,12 @@ public class XxxViewModel extends BaseViewModel {
1346
1348
.request(new OnHttpListener<HttpData<Xxx > > () {
1347
1349
1348
1350
@Override
1349
- public void onSucceed (HttpData<Xxx > result ) {
1351
+ public void onHttpSuccess (HttpData<Xxx > result ) {
1350
1352
1351
1353
}
1352
1354
1353
1355
@Override
1354
- public void onFail (Exception e ) {
1356
+ public void onHttpFail (Exception e ) {
1355
1357
1356
1358
}
1357
1359
});
@@ -1363,23 +1365,23 @@ public class XxxViewModel extends BaseViewModel {
1363
1365
1364
1366
* 首先这个加载对话框不是框架自带的,是可以修改或者取消的,主要有两种方式可供选择
1365
1367
1366
- * 第一种方式:重写 HttpCallback 类回调方法
1368
+ * 第一种方式:重写 HttpCallbackProxy 类回调方法
1367
1369
1368
1370
``` java
1369
1371
EasyHttp . post(this )
1370
1372
.api(new XxxApi ())
1371
- .request(new HttpCallback <Xxx > (this ) {
1373
+ .request(new HttpCallbackProxy <Xxx > (this ) {
1372
1374
1373
1375
@Override
1374
- public void onStart (Call call ) {
1376
+ public void onHttpStart (Call call ) {
1375
1377
// 重写方法并注释父类调用
1376
- // super.onStart (call);
1378
+ // super.onHttpStart (call);
1377
1379
}
1378
1380
1379
1381
@Override
1380
- public void onEnd (Call call ) {
1382
+ public void onHttpEnd (Call call ) {
1381
1383
// 重写方法并注释父类调用
1382
- // super.onEnd (call);
1384
+ // super.onHttpEnd (call);
1383
1385
}
1384
1386
});
1385
1387
```
@@ -1393,12 +1395,12 @@ EasyHttp.post(this)
1393
1395
.request(new OnHttpListener<Xxx > () {
1394
1396
1395
1397
@Override
1396
- public void onSucceed (Xxx result ) {
1398
+ public void onHttpSuccess (Xxx result ) {
1397
1399
1398
1400
}
1399
1401
1400
1402
@Override
1401
- public void onFail (Exception e ) {
1403
+ public void onHttpFail (Exception e ) {
1402
1404
1403
1405
}
1404
1406
});
@@ -1417,10 +1419,10 @@ String json = gson.toJson(parameter);
1417
1419
EasyHttp . post(this )
1418
1420
.api(new XxxApi ())
1419
1421
.body(new JsonBody (json))
1420
- .request(new HttpCallback <HttpData<Xxx > > (this ) {
1422
+ .request(new HttpCallbackProxy <HttpData<Xxx > > (this ) {
1421
1423
1422
1424
@Override
1423
- public void onSucceed (HttpData<Xxx > result ) {
1425
+ public void onHttpSuccess (HttpData<Xxx > result ) {
1424
1426
1425
1427
}
1426
1428
});
@@ -1452,10 +1454,10 @@ JsonBody jsonBody = new JsonBody(json)
1452
1454
EasyHttp . post(this )
1453
1455
.api(new XxxApi ())
1454
1456
.body(jsonBody)
1455
- .request(new HttpCallback <HttpData<Xxx > > (this ) {
1457
+ .request(new HttpCallbackProxy <HttpData<Xxx > > (this ) {
1456
1458
1457
1459
@Override
1458
- public void onSucceed (HttpData<Xxx > result ) {
1460
+ public void onHttpSuccess (HttpData<Xxx > result ) {
1459
1461
1460
1462
}
1461
1463
});
@@ -1467,15 +1469,15 @@ EasyHttp.post(this)
1467
1469
1468
1470
#### 我想修改请求回调所在的线程该怎么办
1469
1471
1470
- ```
1472
+ ``` java
1471
1473
EasyHttp . post(this )
1472
1474
.api(new XxxApi ())
1473
1475
// 表示回调是在子线程中进行
1474
1476
.schedulers(ThreadSchedulers . IOThread )
1475
- .request(new HttpCallback <HttpData<Xxx>>(this) {
1477
+ .request(new HttpCallbackProxy <HttpData<Xxx > > (this ) {
1476
1478
1477
1479
@Override
1478
- public void onSucceed (HttpData<Xxx> result) {
1480
+ public void onHttpSuccess (HttpData<Xxx > result ) {
1479
1481
1480
1482
}
1481
1483
});
@@ -1489,10 +1491,10 @@ EasyHttp.post(this)
1489
1491
EasyHttp . post(this )
1490
1492
.api(new XxxApi ())
1491
1493
.body(RequestBody body)
1492
- .request(new HttpCallback <HttpData<Xxx > > (this ) {
1494
+ .request(new HttpCallbackProxy <HttpData<Xxx > > (this ) {
1493
1495
1494
1496
@Override
1495
- public void onSucceed (HttpData<Xxx > result ) {
1497
+ public void onHttpSuccess (HttpData<Xxx > result ) {
1496
1498
1497
1499
}
1498
1500
});
@@ -1505,7 +1507,7 @@ EasyHttp.post(this)
1505
1507
* 具体的写法示例如下:
1506
1508
1507
1509
``` java
1508
- public final class SearchBlogsApi implements IRequestApi {
1510
+ public final class XxxApi implements IRequestApi {
1509
1511
1510
1512
@NonNull
1511
1513
@Override
@@ -1586,17 +1588,42 @@ api.putParameter("key2", "value2");
1586
1588
1587
1589
EasyHttp . get(this )
1588
1590
.api(api)
1589
- .request(new HttpCallback <Xxx > (this ) {
1591
+ .request(new HttpCallbackProxy <Xxx > (this ) {
1590
1592
1591
1593
@Override
1592
- public void onSucceed (Xxx result ) {
1594
+ public void onHttpSuccess (Xxx result ) {
1593
1595
1594
1596
}
1595
1597
});
1596
1598
```
1597
1599
1598
1600
* 需要注意的是:这种实现方式仅适用于在框架设计无法满足需求的情况下,其他情况下作者并不提倡用这种方式,因为这样不方便管理请求参数的 key,还是推荐大家使用在类上面定义字段的方式来实现。
1599
1601
1602
+ #### 我想在 Post 请求中定义类似 Get 请求参数该怎么做
1603
+
1604
+ * 直接拼接请求的参数到 url 上面,并且忽略某个字段的值(避免被解析成 Post 参数)
1605
+
1606
+ ``` java
1607
+ public final class XxxApi implements IRequestApi {
1608
+
1609
+ @NonNull
1610
+ @Override
1611
+ public String getApi () {
1612
+ return " article/query?pageNumber=" + pageNumber;
1613
+ }
1614
+
1615
+ @HttpIgnore
1616
+ private int pageNumber;
1617
+
1618
+ public XxxApi setPageNumber (int pageNumber ) {
1619
+ this . pageNumber = pageNumber;
1620
+ return this ;
1621
+ }
1622
+ }
1623
+ ```
1624
+
1625
+ * Ps:一般情况下我是不建议这样写的,这样的请求看起来不伦不类,即长得像一个 Get 请求,但是实际上却是一个 Post 请求。
1626
+
1600
1627
# 搭配 RxJava
1601
1628
1602
1629
#### 准备工作
@@ -1682,10 +1709,10 @@ Observable.intervalRange(1, 3, 5000, 1000, TimeUnit.MILLISECONDS)
1682
1709
EasyHttp . post(MainActivity . this )
1683
1710
.api(new SearchBlogsApi ()
1684
1711
.setKeyword(" 搬砖不再有" ))
1685
- .request(new HttpCallback <HttpData<SearchBean > > (MainActivity . this ) {
1712
+ .request(new HttpCallbackProxy <HttpData<SearchBean > > (MainActivity . this ) {
1686
1713
1687
1714
@Override
1688
- public void onSucceed (HttpData<SearchBean > result ) {
1715
+ public void onHttpSuccess (HttpData<SearchBean > result ) {
1689
1716
1690
1717
}
1691
1718
});
@@ -1703,17 +1730,17 @@ Observable.create(new ObservableOnSubscribe<HttpData<SearchBean>>() {
1703
1730
EasyHttp . post(MainActivity . this )
1704
1731
.api(new SearchBlogsApi ()
1705
1732
.setKeyword(" 搬砖不再有" ))
1706
- .request(new HttpCallback <HttpData<SearchBean > > (MainActivity . this ) {
1733
+ .request(new HttpCallbackProxy <HttpData<SearchBean > > (MainActivity . this ) {
1707
1734
1708
1735
@Override
1709
- public void onSucceed (HttpData<SearchBean > result ) {
1736
+ public void onHttpSuccess (HttpData<SearchBean > result ) {
1710
1737
emitter. onNext(result);
1711
1738
emitter. onComplete();
1712
1739
}
1713
1740
1714
1741
@Override
1715
- public void onFail (Exception e ) {
1716
- super . onFail (e);
1742
+ public void onHttpFail (Exception e ) {
1743
+ super . onHttpFail (e);
1717
1744
emitter. onError(e);
1718
1745
}
1719
1746
});
0 commit comments