Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
db02b1ce
Commit
db02b1ce
authored
Sep 08, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix B端网络服务非加密接口请求结果解析异常
parent
688776c4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
19 deletions
+85
-19
HttpResultObserver.kt
...c/main/java/com/yidian/bcommon/http/HttpResultObserver.kt
+15
-6
BNAHttpReqService.kt
...huoquan/bgeneralbusiness/service/net/BNAHttpReqService.kt
+10
-2
BNARemoteDataSource.kt
...oquan/bgeneralbusiness/service/net/BNARemoteDataSource.kt
+60
-11
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/http/HttpResultObserver.kt
View file @
db02b1ce
package
com.yidian.bcommon.http
package
com.yidian.bcommon.http
import
com.google.gson.Gson
import
com.google.gson.JsonParseException
import
com.google.gson.JsonParseException
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.constant.ResultCode
import
com.yidian.bcommon.sdk.BCommonManager
import
com.yidian.utils.ToastUtil
import
com.yidian.utils.ToastUtil
import
io.reactivex.rxjava3.core.Observer
import
io.reactivex.rxjava3.core.Observer
import
io.reactivex.rxjava3.disposables.Disposable
import
io.reactivex.rxjava3.disposables.Disposable
import
timber.log.Timber
/**
/**
* author: yinjiacheng
* author: yinjiacheng
* date: 7/13/21 9:00 AM
* date: 7/13/21 9:00 AM
* description: 网路请求解析
* description: 网路请求解析
* 非
商户后台
使用
* 非
加密接口
使用
*/
*/
abstract
class
HttpResultObserver
<
T
>
:
Observer
<
HttpResult
<
T
>>
{
abstract
class
HttpResultObserver
<
T
>
:
Observer
<
HttpResult
<
T
>>
{
private
val
gson
by
lazy
{
Gson
()
}
private
var
isShowErrorMsg
=
true
private
var
isShowErrorMsg
=
true
override
fun
onSubscribe
(
d
:
Disposable
)
{
//网络请求之前
override
fun
onSubscribe
(
d
:
Disposable
)
{
//网络请求之前
...
@@ -45,13 +50,17 @@ abstract class HttpResultObserver<T> : Observer<HttpResult<T>> {
...
@@ -45,13 +50,17 @@ abstract class HttpResultObserver<T> : Observer<HttpResult<T>> {
}
}
override
fun
onNext
(
result
:
HttpResult
<
T
>)
{
override
fun
onNext
(
result
:
HttpResult
<
T
>)
{
if
(
result
.
code
==
0
)
{
when
(
result
.
code
)
{
ResultCode
.
SUCCESS
->
{
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"response result: ${gson.toJson(result.result)}"
)
onRequestSuccess
(
result
)
onRequestSuccess
(
result
)
}
else
{
}
else
->
{
onFailure
(
result
)
onFailure
(
result
)
ToastUtil
.
showToast
(
YdBaseApplication
.
context
,
result
.
reason
?:
"网络请求失败"
)
ToastUtil
.
showToast
(
YdBaseApplication
.
context
,
result
.
reason
?:
"网络请求失败"
)
}
}
}
}
}
abstract
fun
onSuccess
(
result
:
HttpResult
<
T
>?)
abstract
fun
onSuccess
(
result
:
HttpResult
<
T
>?)
abstract
fun
onFailure
(
result
:
HttpResult
<
T
>?)
abstract
fun
onFailure
(
result
:
HttpResult
<
T
>?)
...
...
Components/BGeneralBusiness/src/main/java/com/yidian/shenghuoquan/bgeneralbusiness/service/net/BNAHttpReqService.kt
View file @
db02b1ce
...
@@ -35,10 +35,18 @@ class BNAHttpReqService : ZapService() {
...
@@ -35,10 +35,18 @@ class BNAHttpReqService : ZapService() {
//发起请求
//发起请求
when
(
method
)
{
when
(
method
)
{
"GET"
,
"get"
->
{
"GET"
,
"get"
->
{
BNARemoteDataSource
.
launchGetRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
isEncrypt
,
resolver
)
if
(
isEncrypt
)
{
BNARemoteDataSource
.
launchEncryptGetRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
resolver
)
}
else
{
BNARemoteDataSource
.
launchGetRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
resolver
)
}
}
}
"POST"
,
"post"
->
{
"POST"
,
"post"
->
{
BNARemoteDataSource
.
launchPostRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
isEncrypt
,
resolver
)
if
(
isEncrypt
)
{
BNARemoteDataSource
.
launchEncryptPostRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
resolver
)
}
else
{
BNARemoteDataSource
.
launchPostRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
,
resolver
)
}
}
}
else
->
{
else
->
{
resolver
.
fail
(-
1000
,
"request error"
,
"不支持的请求方式"
)
resolver
.
fail
(-
1000
,
"request error"
,
"不支持的请求方式"
)
...
...
Components/BGeneralBusiness/src/main/java/com/yidian/shenghuoquan/bgeneralbusiness/service/net/BNARemoteDataSource.kt
View file @
db02b1ce
package
com.yidian.shenghuoquan.bgeneralbusiness.service.net
package
com.yidian.shenghuoquan.bgeneralbusiness.service.net
import
com.yidian.bcommon.http.HttpParamsUtils
import
com.yidian.bcommon.http.*
import
com.yidian.bcommon.http.HttpResult
import
com.yidian.bcommon.http.HttpResultSubscriber
import
com.yidian.bcommon.http.TransformUtil
import
com.yidian.http.ServiceFactory
import
com.yidian.http.ServiceFactory
import
com.yidian.shenghuoquan.bgeneralbusiness.service.net.callback.IBNARequestCallBack
import
com.yidian.shenghuoquan.bgeneralbusiness.service.net.callback.IBNARequestCallBack
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.xarc.xrouter.ResultResolver
...
@@ -12,21 +9,74 @@ object BNARemoteDataSource {
...
@@ -12,21 +9,74 @@ object BNARemoteDataSource {
/**
/**
* 发起get请求
* 发起get请求
* 加密接口
*/
fun
launchEncryptGetRequest
(
apiCallback
:
IBNARequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
,
resolver
:
ResultResolver
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
.
mbGetRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResultSubscriber
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
}
override
fun
onFailure
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestFailure
(
result
,
resolver
)
}
})
}
/**
* 发起get请求
* 不加密接口
*/
*/
fun
launchGetRequest
(
fun
launchGetRequest
(
apiCallback
:
IBNARequestCallBack
,
apiCallback
:
IBNARequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
,
url
:
String
,
isEncrypt
:
Boolean
,
resolver
:
ResultResolver
resolver
:
ResultResolver
)
{
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
)
if
(
isEncrypt
)
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
else
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
.
mbGetRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
mbGetRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResultObserver
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
}
override
fun
onFailure
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestFailure
(
result
,
resolver
)
}
})
}
/**
* 发起post请求
* 加密接口
*/
fun
launchEncryptPostRequest
(
apiCallback
:
IBNARequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
,
resolver
:
ResultResolver
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
.
mbPostRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResultSubscriber
<
Any
?>()
{
.
subscribe
(
object
:
HttpResultSubscriber
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
...
@@ -40,22 +90,21 @@ object BNARemoteDataSource {
...
@@ -40,22 +90,21 @@ object BNARemoteDataSource {
/**
/**
* 发起post请求
* 发起post请求
* 不加密接口
*/
*/
fun
launchPostRequest
(
fun
launchPostRequest
(
apiCallback
:
IBNARequestCallBack
,
apiCallback
:
IBNARequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
,
url
:
String
,
isEncrypt
:
Boolean
,
resolver
:
ResultResolver
resolver
:
ResultResolver
)
{
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
)
if
(
isEncrypt
)
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
else
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
ServiceFactory
.
getInstance
().
createService
(
BNAService
::
class
.
java
)
.
mbPostRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
mbPostRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResult
Subscrib
er
<
Any
?>()
{
.
subscribe
(
object
:
HttpResult
Observ
er
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
apiCallback
.
getRequestSuccess
(
result
,
resolver
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment