Skip to content

Commit fbf341a

Browse files
committed
修改 HttpCallback 类名命名
修改 OnHttpListener 回调方法名 修改 OnUpdateListener 回调方法名 修改 OnDownloadListener 回调方法名 优化 OnDownloadListener 方法默认实现规则 优化 FileContentResolver 类中判断文件是否存在的逻辑 补充《我想在 Post 请求中定义类似 Get 请求参数该怎么做》文档
1 parent 06f339c commit fbf341a

19 files changed

+328
-215
lines changed

HelpDoc.md

Lines changed: 79 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@
100100

101101
* [我想自定义 Get 请求参数中的 key 和 value 该怎么做](#我想自定义-get-请求参数中的-key-和-value-该怎么做)
102102

103+
* [我想在 Post 请求中定义类似 Get 请求参数该怎么做](#我想在-post-请求中定义类似-get-请求参数该怎么做)
104+
103105
* [搭配 RxJava](#搭配-rxjava)
104106

105107
* [准备工作](#准备工作)
@@ -298,10 +300,10 @@ EasyHttp.post(this)
298300
.api(new LoginApi()
299301
.setUserName("Android 轮子哥")
300302
.setPassword("123456"))
301-
.request(new HttpCallback<HttpData<LoginBean>>(activity) {
303+
.request(new HttpCallbackProxy<HttpData<LoginBean>>(activity) {
302304

303305
@Override
304-
public void onSucceed(HttpData<LoginBean> data) {
306+
public void onHttpSuccess(HttpData<LoginBean> data) {
305307
toast("登录成功");
306308
}
307309
});
@@ -347,27 +349,27 @@ EasyHttp.post(this)
347349
.request(new OnUpdateListener<Void>() {
348350

349351
@Override
350-
public void onStart(Call call) {
352+
public void onUpdateStart(Call call) {
351353
mProgressBar.setVisibility(View.VISIBLE);
352354
}
353355

354356
@Override
355-
public void onProgress(int progress) {
357+
public void onUpdateProgressChange(int progress) {
356358
mProgressBar.setProgress(progress);
357359
}
358360

359361
@Override
360-
public void onSucceed(Void result) {
362+
public void onUpdateSuccess(Void result) {
361363
toast("上传成功");
362364
}
363365

364366
@Override
365-
public void onFail(Exception e) {
367+
public void onUpdateFail(Exception e) {
366368
toast("上传失败");
367369
}
368370

369371
@Override
370-
public void onEnd(Call call) {
372+
public void onUpdateEnd(Call call) {
371373
mProgressBar.setVisibility(View.GONE);
372374
}
373375
});
@@ -391,28 +393,28 @@ EasyHttp.download(this)
391393
.listener(new OnDownloadListener() {
392394

393395
@Override
394-
public void onStart(File file) {
396+
public void onDownloadStart(File file) {
395397
mProgressBar.setVisibility(View.VISIBLE);
396398
}
397399

398400
@Override
399-
public void onProgress(File file, int progress) {
401+
public void onDownloadProgressChange(File file, int progress) {
400402
mProgressBar.setProgress(progress);
401403
}
402404

403405
@Override
404-
public void onComplete(File file) {
406+
public void onDownloadSuccess(File file) {
405407
toast("下载完成:" + file.getPath());
406408
installApk(XxxActivity.this, file);
407409
}
408410

409411
@Override
410-
public void onError(File file, Exception e) {
412+
public void onDownloadFail(File file, Exception e) {
411413
toast("下载出错:" + e.getMessage());
412414
}
413415

414416
@Override
415-
public void onEnd(File file) {
417+
public void onDownloadEnd(File file) {
416418
mProgressBar.setVisibility(View.GONE);
417419
}
418420

@@ -439,10 +441,10 @@ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
439441
EasyHttp.post(this)
440442
.api(new XxxApi()
441443
.setImage(outputFile))
442-
.request(new HttpCallback<Xxx <Xxx>>(this) {
444+
.request(new HttpCallbackProxy<Xxx <Xxx>>(this) {
443445

444446
@Override
445-
public void onSucceed(Xxx<Xxx> data) {
447+
public void onHttpSuccess(Xxx<Xxx> data) {
446448

447449
}
448450
});
@@ -1168,10 +1170,10 @@ EasyHttp.post(MainActivity.this)
11681170
.api(new XxxApi())
11691171
// 延迟 5 秒后请求
11701172
.delay(5000)
1171-
.request(new HttpCallback<HttpData<XxxBean>>(MainActivity.this) {
1173+
.request(new HttpCallbackProxy<HttpData<XxxBean>>(MainActivity.this) {
11721174

11731175
@Override
1174-
public void onSucceed(HttpData<XxxBean> result) {
1176+
public void onHttpSuccess(HttpData<XxxBean> result) {
11751177

11761178
}
11771179
});
@@ -1203,10 +1205,10 @@ public final class XxxApi implements IRequestApi {
12031205
```java
12041206
EasyHttp.post(this)
12051207
.api(new RequestUrl("https://xxxx.com/aaaa"))
1206-
.request(new HttpCallback<Xxx>(this) {
1208+
.request(new HttpCallbackProxy<Xxx>(this) {
12071209

12081210
@Override
1209-
public void onSucceed(Xxx result) {
1211+
public void onHttpSuccess(Xxx result) {
12101212

12111213
}
12121214
});
@@ -1244,10 +1246,10 @@ public final class HttpUrls {
12441246
```java
12451247
EasyHttp.post(this)
12461248
.api(HttpUrls.GET_USER_INFO)
1247-
.request(new HttpCallback<HttpData<XxxBean>>(this) {
1249+
.request(new HttpCallbackProxy<HttpData<XxxBean>>(this) {
12481250

12491251
@Override
1250-
public void onSucceed(HttpData<XxxBean> result) {
1252+
public void onHttpSuccess(HttpData<XxxBean> result) {
12511253

12521254
}
12531255
});
@@ -1266,10 +1268,10 @@ EasyHttp.post(this)
12661268
```java
12671269
EasyHttp.post(new ActivityLifecycle(this))
12681270
.api(new XxxApi())
1269-
.request(new HttpCallback<HttpData<XxxBean>>(this) {
1271+
.request(new HttpCallbackProxy<HttpData<XxxBean>>(this) {
12701272

12711273
@Override
1272-
public void onSucceed(HttpData<XxxBean> result) {
1274+
public void onHttpSuccess(HttpData<XxxBean> result) {
12731275

12741276
}
12751277
});
@@ -1288,12 +1290,12 @@ EasyHttp.post(ApplicationLifecycle.getInstance())
12881290
.request(new OnHttpListener<HttpData<XxxBean>>() {
12891291

12901292
@Override
1291-
public void onSucceed(HttpData<XxxBean> result) {
1293+
public void onHttpSuccess(HttpData<XxxBean> result) {
12921294

12931295
}
12941296

12951297
@Override
1296-
public void onFail(Exception e) {
1298+
public void onHttpFail(Exception e) {
12971299

12981300
}
12991301
});
@@ -1346,12 +1348,12 @@ public class XxxViewModel extends BaseViewModel {
13461348
.request(new OnHttpListener<HttpData<Xxx>>() {
13471349

13481350
@Override
1349-
public void onSucceed(HttpData<Xxx> result) {
1351+
public void onHttpSuccess(HttpData<Xxx> result) {
13501352

13511353
}
13521354

13531355
@Override
1354-
public void onFail(Exception e) {
1356+
public void onHttpFail(Exception e) {
13551357

13561358
}
13571359
});
@@ -1363,23 +1365,23 @@ public class XxxViewModel extends BaseViewModel {
13631365

13641366
* 首先这个加载对话框不是框架自带的,是可以修改或者取消的,主要有两种方式可供选择
13651367

1366-
* 第一种方式:重写 HttpCallback 类回调方法
1368+
* 第一种方式:重写 HttpCallbackProxy 类回调方法
13671369

13681370
```java
13691371
EasyHttp.post(this)
13701372
.api(new XxxApi())
1371-
.request(new HttpCallback<Xxx>(this) {
1373+
.request(new HttpCallbackProxy<Xxx>(this) {
13721374

13731375
@Override
1374-
public void onStart(Call call) {
1376+
public void onHttpStart(Call call) {
13751377
// 重写方法并注释父类调用
1376-
//super.onStart(call);
1378+
//super.onHttpStart(call);
13771379
}
13781380

13791381
@Override
1380-
public void onEnd(Call call) {
1382+
public void onHttpEnd(Call call) {
13811383
// 重写方法并注释父类调用
1382-
//super.onEnd(call);
1384+
//super.onHttpEnd(call);
13831385
}
13841386
});
13851387
```
@@ -1393,12 +1395,12 @@ EasyHttp.post(this)
13931395
.request(new OnHttpListener<Xxx>() {
13941396

13951397
@Override
1396-
public void onSucceed(Xxx result) {
1398+
public void onHttpSuccess(Xxx result) {
13971399

13981400
}
13991401

14001402
@Override
1401-
public void onFail(Exception e) {
1403+
public void onHttpFail(Exception e) {
14021404

14031405
}
14041406
});
@@ -1417,10 +1419,10 @@ String json = gson.toJson(parameter);
14171419
EasyHttp.post(this)
14181420
.api(new XxxApi())
14191421
.body(new JsonBody(json))
1420-
.request(new HttpCallback<HttpData<Xxx>>(this) {
1422+
.request(new HttpCallbackProxy<HttpData<Xxx>>(this) {
14211423

14221424
@Override
1423-
public void onSucceed(HttpData<Xxx> result) {
1425+
public void onHttpSuccess(HttpData<Xxx> result) {
14241426

14251427
}
14261428
});
@@ -1452,10 +1454,10 @@ JsonBody jsonBody = new JsonBody(json)
14521454
EasyHttp.post(this)
14531455
.api(new XxxApi())
14541456
.body(jsonBody)
1455-
.request(new HttpCallback<HttpData<Xxx>>(this) {
1457+
.request(new HttpCallbackProxy<HttpData<Xxx>>(this) {
14561458

14571459
@Override
1458-
public void onSucceed(HttpData<Xxx> result) {
1460+
public void onHttpSuccess(HttpData<Xxx> result) {
14591461

14601462
}
14611463
});
@@ -1467,15 +1469,15 @@ EasyHttp.post(this)
14671469

14681470
#### 我想修改请求回调所在的线程该怎么办
14691471

1470-
```
1472+
```java
14711473
EasyHttp.post(this)
14721474
.api(new XxxApi())
14731475
// 表示回调是在子线程中进行
14741476
.schedulers(ThreadSchedulers.IOThread)
1475-
.request(new HttpCallback<HttpData<Xxx>>(this) {
1477+
.request(new HttpCallbackProxy<HttpData<Xxx>>(this) {
14761478

14771479
@Override
1478-
public void onSucceed(HttpData<Xxx> result) {
1480+
public void onHttpSuccess(HttpData<Xxx> result) {
14791481

14801482
}
14811483
});
@@ -1489,10 +1491,10 @@ EasyHttp.post(this)
14891491
EasyHttp.post(this)
14901492
.api(new XxxApi())
14911493
.body(RequestBody body)
1492-
.request(new HttpCallback<HttpData<Xxx>>(this) {
1494+
.request(new HttpCallbackProxy<HttpData<Xxx>>(this) {
14931495

14941496
@Override
1495-
public void onSucceed(HttpData<Xxx> result) {
1497+
public void onHttpSuccess(HttpData<Xxx> result) {
14961498

14971499
}
14981500
});
@@ -1505,7 +1507,7 @@ EasyHttp.post(this)
15051507
* 具体的写法示例如下:
15061508

15071509
```java
1508-
public final class SearchBlogsApi implements IRequestApi {
1510+
public final class XxxApi implements IRequestApi {
15091511

15101512
@NonNull
15111513
@Override
@@ -1586,17 +1588,42 @@ api.putParameter("key2", "value2");
15861588

15871589
EasyHttp.get(this)
15881590
.api(api)
1589-
.request(new HttpCallback<Xxx>(this) {
1591+
.request(new HttpCallbackProxy<Xxx>(this) {
15901592

15911593
@Override
1592-
public void onSucceed(Xxx result) {
1594+
public void onHttpSuccess(Xxx result) {
15931595

15941596
}
15951597
});
15961598
```
15971599

15981600
* 需要注意的是:这种实现方式仅适用于在框架设计无法满足需求的情况下,其他情况下作者并不提倡用这种方式,因为这样不方便管理请求参数的 key,还是推荐大家使用在类上面定义字段的方式来实现。
15991601

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+
16001627
# 搭配 RxJava
16011628

16021629
#### 准备工作
@@ -1682,10 +1709,10 @@ Observable.intervalRange(1, 3, 5000, 1000, TimeUnit.MILLISECONDS)
16821709
EasyHttp.post(MainActivity.this)
16831710
.api(new SearchBlogsApi()
16841711
.setKeyword("搬砖不再有"))
1685-
.request(new HttpCallback<HttpData<SearchBean>>(MainActivity.this) {
1712+
.request(new HttpCallbackProxy<HttpData<SearchBean>>(MainActivity.this) {
16861713

16871714
@Override
1688-
public void onSucceed(HttpData<SearchBean> result) {
1715+
public void onHttpSuccess(HttpData<SearchBean> result) {
16891716

16901717
}
16911718
});
@@ -1703,17 +1730,17 @@ Observable.create(new ObservableOnSubscribe<HttpData<SearchBean>>() {
17031730
EasyHttp.post(MainActivity.this)
17041731
.api(new SearchBlogsApi()
17051732
.setKeyword("搬砖不再有"))
1706-
.request(new HttpCallback<HttpData<SearchBean>>(MainActivity.this) {
1733+
.request(new HttpCallbackProxy<HttpData<SearchBean>>(MainActivity.this) {
17071734

17081735
@Override
1709-
public void onSucceed(HttpData<SearchBean> result) {
1736+
public void onHttpSuccess(HttpData<SearchBean> result) {
17101737
emitter.onNext(result);
17111738
emitter.onComplete();
17121739
}
17131740

17141741
@Override
1715-
public void onFail(Exception e) {
1716-
super.onFail(e);
1742+
public void onHttpFail(Exception e) {
1743+
super.onHttpFail(e);
17171744
emitter.onError(e);
17181745
}
17191746
});

0 commit comments

Comments
 (0)