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
26c3ba94
Commit
26c3ba94
authored
Jul 05, 2021
by
shiyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
封装H5调原生的网络请求协议
parent
859fd465
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
270 additions
and
101 deletions
+270
-101
build.gradle
CommonLib/Common/build.gradle
+0
-1
YdBaseApplication.kt
...mmon/src/main/java/com/yidian/common/YdBaseApplication.kt
+6
-4
URLs.kt
...onLib/Common/src/main/java/com/yidian/common/http/URLs.kt
+0
-15
XEventService.kt
...src/main/java/com/yidian/common/services/XEventService.kt
+48
-48
XPageService.kt
.../src/main/java/com/yidian/common/services/XPageService.kt
+33
-33
MBHttpReqService.kt
.../java/com/yidian/common/services/http/MBHttpReqService.kt
+90
-0
MBRemoteDataSource.kt
...ava/com/yidian/common/services/http/MBRemoteDataSource.kt
+53
-0
MBService.kt
...rc/main/java/com/yidian/common/services/http/MBService.kt
+32
-0
IMBRequestCallBack.kt
...idian/common/services/http/callback/IMBRequestCallBack.kt
+8
-0
No files found.
CommonLib/Common/build.gradle
View file @
26c3ba94
...
...
@@ -32,7 +32,6 @@ android {
buildTypes
{
debug
{
// applicationIdSuffix ".debug"
buildConfigField
"boolean"
,
"ENV_DEBUG"
,
"true"
buildConfigField
(
"String"
,
"API_URL"
,
rootProject
.
ext
.
buildParams
.
debug
.
API_URL
)
buildConfigField
(
"String"
,
"PROVIDER_NAME"
,
'\"'
+
rootProject
.
ext
.
android
.
applicationId
+
".debug.fileprovider"
+
'\"'
)
...
...
CommonLib/Common/src/main/java/com/yidian/common/YdBaseApplication.kt
View file @
26c3ba94
...
...
@@ -16,6 +16,7 @@ import com.yidian.common.http.ApiSetCookiesInterceptor
import
com.yidian.common.services.AppUpgradeService
import
com.yidian.common.services.XEventService
import
com.yidian.common.services.XPageService
import
com.yidian.common.services.http.MBHttpReqService
import
com.yidian.common.utils.UMConfigUtils
import
com.yidian.commonutil.CommonUtilLifecycleModule
import
com.yidian.framework.mobile.xdiamond.SecretUtil
...
...
@@ -93,8 +94,8 @@ open class YdBaseApplication : Application() {
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
)
// 初始化App升级
initAppUpgrade
()
initSmartRefreshLayout
()
}
initSmartRefreshLayout
()
}
/**
...
...
@@ -153,7 +154,7 @@ open class YdBaseApplication : Application() {
XBridManager
.
init
(
XBridApp
(
applicationContext
)
{
assetRoot
=
"www"
//对应assets目录下存放xbrid资源对应的目录名
appId
=
"com.yidian.subway"
//当前应用包名
appId
=
applicationContext
.
packageName
//当前应用包名
platformId
=
16
//需要去平台申请
appVersion
=
AppConfig
.
cv
//当前应用版本号
deviceFinger
=
FtDeviceFingerManager
.
getDeviceFinger
()
//设备指纹
...
...
@@ -204,9 +205,10 @@ open class YdBaseApplication : Application() {
}
private
fun
loadService
()
{
Zap
.
addService
(
XPageService
.
name
,
XPageService
())
Zap
.
addService
(
XEventService
.
name
,
XEventService
())
Zap
.
addService
(
XPageService
.
SERVICE_NAME
,
XPageService
())
Zap
.
addService
(
XEventService
.
SERVICE_NAME
,
XEventService
())
Zap
.
addService
(
AppUpgradeService
.
SERVICE_NAME
,
AppUpgradeService
())
Zap
.
addService
(
MBHttpReqService
.
SERVICE_NAME
,
MBHttpReqService
())
}
/**
...
...
CommonLib/Common/src/main/java/com/yidian/common/http/URLs.kt
View file @
26c3ba94
package
com.yidian.common.http
import
com.yidian.common.BuildConfig
class
URLs
{
companion
object
{
val
BASE_URL
:
String
private
const
val
BASE_URL_DEBUG
=
"http://bp-dev.go2yd.com"
private
const
val
BASE_URL_PRO
=
"http://bp-dev.go2yd.com"
init
{
BASE_URL
=
if
(
BuildConfig
.
ENV_DEBUG
)
{
BASE_URL_DEBUG
}
else
{
BASE_URL_PRO
}
}
const
val
userInfo
=
"/user/user/info"
// 生活圈B端
...
...
CommonLib/Common/src/main/java/com/yidian/common/services/XEventService.kt
View file @
26c3ba94
...
...
@@ -16,58 +16,58 @@ import org.json.JSONObject
**/
class
XEventService
:
ZapService
()
{
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
when
(
action
)
{
"postEvent"
->
{
params
as
JSONObject
val
name
:
String
=
params
[
"name"
]
as
String
val
body
=
params
[
"body"
]
XEventManager
.
post
(
XBaseEvent
(
name
,
body
))
//向flutter发送Event事件
ZapTicket
(
"flutter-event"
)
.
withAction
(
"handleEvent"
)
.
withServiceParams
(
params
)
.
onLost
{
result
->
Log
.
d
(
TAG
,
"onLost: $result"
)
}
.
onResult
{
result
->
Log
.
d
(
TAG
,
"flutter-event+onResult: $result"
)
}.
ship
()
XBridManager
.
postEvent
(
name
,
body
,
null
)
resolver
.
success
(
"事件已发送"
)
}
}
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
when
(
action
)
{
"postEvent"
->
{
params
as
JSONObject
val
name
:
String
=
params
[
"name"
]
as
String
val
body
=
params
[
"body"
]
XEventManager
.
post
(
XBaseEvent
(
name
,
body
))
//向flutter发送Event事件
ZapTicket
(
"flutter-event"
)
.
withAction
(
"handleEvent"
)
.
withServiceParams
(
params
)
.
onLost
{
result
->
Log
.
d
(
TAG
,
"onLost: $result"
)
}
.
onResult
{
result
->
Log
.
d
(
TAG
,
"flutter-event+onResult: $result"
)
}.
ship
()
XBridManager
.
postEvent
(
name
,
body
,
null
)
resolver
.
success
(
"事件已发送"
)
}
}
}
override
fun
onInit
()
{
}
override
fun
onInit
()
{
}
override
fun
onExit
()
{
}
override
fun
onExit
()
{
}
companion
object
{
const
val
name
:
String
=
"xevent"
private
val
TAG
=
"XEventService"
fun
postEvent
(
xbaseEvent
:
XBaseEvent
)
{
val
jsonObject
=
JSONObject
()
jsonObject
.
put
(
"name"
,
xbaseEvent
.
name
)
jsonObject
.
put
(
"body"
,
xbaseEvent
.
body
)
ZapTicket
(
name
)
.
withAction
(
"postEvent"
)
.
withServiceParams
(
jsonObject
)
.
onLost
{
result
->
Log
.
d
(
TAG
,
"onLost: $result"
)
}
.
onResult
{
result
->
Log
.
d
(
TAG
,
"onResult: $result"
)
}.
ship
()
companion
object
{
const
val
SERVICE_NAME
:
String
=
"xevent"
private
val
TAG
=
"XEventService"
fun
postEvent
(
xbaseEvent
:
XBaseEvent
)
{
val
jsonObject
=
JSONObject
()
jsonObject
.
put
(
"name"
,
xbaseEvent
.
name
)
jsonObject
.
put
(
"body"
,
xbaseEvent
.
body
)
ZapTicket
(
SERVICE_NAME
)
.
withAction
(
"postEvent"
)
.
withServiceParams
(
jsonObject
)
.
onLost
{
result
->
Log
.
d
(
TAG
,
"onLost: $result"
)
}
.
onResult
{
result
->
Log
.
d
(
TAG
,
"onResult: $result"
)
}.
ship
()
}
}
}
\ No newline at end of file
}
CommonLib/Common/src/main/java/com/yidian/common/services/XPageService.kt
View file @
26c3ba94
...
...
@@ -11,41 +11,41 @@ import com.yidian.yac.core.zap.ZapService
**/
class
XPageService
:
ZapService
()
{
companion
object
{
const
val
name
:
String
=
"xpage"
companion
object
{
const
val
SERVICE_NAME
:
String
=
"xpage"
}
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
params
as
Map
<
String
,
Any
>
val
name
=
params
[
"pageName"
]
as
String
val
pageParams
=
params
[
"pageParams"
]
as
Map
<
String
,
Any
>
when
(
action
)
{
"push"
->
{
XPageManager
.
push
(
name
,
pageParams
)
}
"pop"
->
{
XPageManager
.
pop
(
pageParams
)
}
"popTo"
->
{
XPageManager
.
popTo
(
name
,
pageParams
)
}
"popToRoot"
->
{
XPageManager
.
popToRoot
(
pageParams
)
}
}
}
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
params
as
Map
<
String
,
Any
>
val
name
=
params
[
"pageName"
]
as
String
val
pageParams
=
params
[
"pageParams"
]
as
Map
<
String
,
Any
>
when
(
action
)
{
"push"
->
{
XPageManager
.
push
(
name
,
pageParams
)
}
"pop"
->
{
XPageManager
.
pop
(
pageParams
)
}
"popTo"
->
{
XPageManager
.
popTo
(
name
,
pageParams
)
}
"popToRoot"
->
{
XPageManager
.
popToRoot
(
pageParams
)
}
}
}
override
fun
onInit
()
{
}
override
fun
onInit
()
{
}
override
fun
onExit
()
{
}
override
fun
onExit
()
{
}
}
\ No newline at end of file
}
CommonLib/Common/src/main/java/com/yidian/common/services/http/MBHttpReqService.kt
0 → 100644
View file @
26c3ba94
package
com.yidian.common.services.http
import
com.google.gson.Gson
import
com.yidian.common.BuildConfig
import
com.yidian.common.http.HttpResult
import
com.yidian.common.services.http.callback.IMBRequestCallBack
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.yac.core.zap.ZapService
import
org.json.JSONObject
/**
* 网络请求服务类
*/
class
MBHttpReqService
:
ZapService
()
{
companion
object
{
const
val
SERVICE_NAME
:
String
=
"MBHttpReqService"
}
private
lateinit
var
resolver
:
ResultResolver
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
this
.
resolver
=
resolver
try
{
//params
val
realParams
=
params
as
JSONObject
val
apiPath
=
realParams
.
optString
(
"path"
)
val
requestParams
=
realParams
.
optJSONObject
(
"params"
)
//options
val
requestOptions
=
options
as
JSONObject
val
method
=
requestOptions
.
optString
(
"method"
,
"POST"
)
val
host
=
requestOptions
.
optString
(
"host"
,
BuildConfig
.
API_URL
)
val
url
=
host
+
apiPath
val
paramsMap
:
HashMap
<
String
,
String
?>
=
parseParams
(
requestParams
)
//发起请求
when
(
method
)
{
"GET"
,
"get"
->
{
MBRemoteDataSource
.
launchGetRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
)
}
"POST"
,
"post"
->
{
MBRemoteDataSource
.
launchPostRequest
(
iMBRequestCallBackImpl
,
paramsMap
,
url
)
}
else
->
{
resolver
.
fail
(-
1000
,
"request error"
,
"不支持的请求方式"
)
}
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
resolver
.
fail
(-
1001
,
"other error"
,
"其他错误"
)
}
}
override
fun
onExit
()
{
}
override
fun
onInit
()
{
}
private
fun
parseParams
(
requestParams
:
JSONObject
?):
HashMap
<
String
,
String
?
>
{
var
hashMap
:
HashMap
<
String
,
String
?>
=
HashMap
()
if
(
requestParams
!=
null
)
{
hashMap
=
HashMap
()
var
key
:
String
?
while
(
requestParams
.
keys
().
hasNext
())
{
key
=
requestParams
.
keys
().
next
()
hashMap
[
key
]
=
requestParams
.
optString
(
key
)
}
}
return
hashMap
}
private
val
iMBRequestCallBackImpl
=
object
:
IMBRequestCallBack
{
override
fun
getRequestSuccess
(
response
:
Any
?)
{
val
params
=
Gson
().
toJson
(
response
)
resolver
.
success
(
JSONObject
(
params
))
}
override
fun
getRequestFailure
(
response
:
HttpResult
<
Any
?
>?)
{
response
?.
let
{
resolver
.
fail
(
response
.
code
,
null
,
response
.
reason
)
}
}
}
}
CommonLib/Common/src/main/java/com/yidian/common/services/http/MBRemoteDataSource.kt
0 → 100644
View file @
26c3ba94
package
com.yidian.common.services.http
import
com.yidian.common.http.HttpParamsUtils
import
com.yidian.common.http.HttpResult
import
com.yidian.common.http.HttpResultSubscriber
import
com.yidian.common.http.TransformUtil
import
com.yidian.common.services.http.callback.IMBRequestCallBack
import
com.yidian.http.ServiceFactory
object
MBRemoteDataSource
{
/**
* 发起get请求
*/
fun
launchGetRequest
(
apiCallback
:
IMBRequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
ServiceFactory
.
getInstance
().
createService
(
MBService
::
class
.
java
)
.
mbGetRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResultSubscriber
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
)
}
override
fun
onFailer
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestFailure
(
result
)
}
})
}
/**
* 发起post请求
*/
fun
launchPostRequest
(
apiCallback
:
IMBRequestCallBack
,
requestParams
:
HashMap
<
String
,
String
?
>,
url
:
String
)
{
val
timeStamp
=
System
.
currentTimeMillis
()
val
publicParamsMap
=
HttpParamsUtils
.
getPublicParamsMap
(
timeStamp
)
val
privateParamsMap
=
HttpParamsUtils
.
getPrivateParamsMap
(
requestParams
,
timeStamp
)
ServiceFactory
.
getInstance
().
createService
(
MBService
::
class
.
java
)
.
mbPostRequest
(
url
,
publicParamsMap
,
privateParamsMap
)
.
compose
(
TransformUtil
.
defaultSchedulers
())
.
subscribe
(
object
:
HttpResultSubscriber
<
Any
?>()
{
override
fun
onSuccess
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestSuccess
(
result
)
}
override
fun
onFailer
(
result
:
HttpResult
<
Any
?
>?)
{
apiCallback
.
getRequestFailure
(
result
)
}
})
}
}
CommonLib/Common/src/main/java/com/yidian/common/services/http/MBService.kt
0 → 100644
View file @
26c3ba94
package
com.yidian.common.services.http
import
com.yidian.common.http.HttpResult
import
io.reactivex.rxjava3.core.Observable
import
retrofit2.http.*
/**
* H5网络请求服务协议的请求
*/
interface
MBService
{
/**
* get请求
*/
@GET
fun
mbGetRequest
(
@Url
url
:
String
,
@QueryMap
commonParams
:
Map
<
String
,
String
>,
@QueryMap
params
:
Map
<
String
,
String
?
>
):
Observable
<
HttpResult
<
Any
?
>>
/**
* post请求
*/
@Headers
(
"Content-Type: application/json"
)
@POST
fun
mbPostRequest
(
@Url
url
:
String
,
@QueryMap
commonParams
:
Map
<
String
,
String
>,
@Body
requestParams
:
Map
<
String
,
String
?
>
):
Observable
<
HttpResult
<
Any
?
>>
}
CommonLib/Common/src/main/java/com/yidian/common/services/http/callback/IMBRequestCallBack.kt
0 → 100644
View file @
26c3ba94
package
com.yidian.common.services.http.callback
import
com.yidian.common.http.HttpResult
interface
IMBRequestCallBack
{
fun
getRequestSuccess
(
response
:
Any
?)
fun
getRequestFailure
(
response
:
HttpResult
<
Any
?
>?)
}
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