mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-03 01:17:41 +08:00
优化:请求重试机制(无网络时也执行重试机制 & 修正延迟时间单位错误)
This commit is contained in:
parent
0f83526ece
commit
388d94a7cf
@ -44,6 +44,15 @@ interface LogsDao {
|
|||||||
)
|
)
|
||||||
fun updateStatus(id: Long, status: Int, response: String): Int
|
fun updateStatus(id: Long, status: Int, response: String): Int
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
"UPDATE Logs SET forward_response=CASE WHEN (trim(forward_response) = '' or trim(forward_response) = 'ok')" +
|
||||||
|
" THEN :response" +
|
||||||
|
" ELSE forward_response || '\n' || :response" +
|
||||||
|
" END" +
|
||||||
|
" where id=:id"
|
||||||
|
)
|
||||||
|
fun updateResponse(id: Long, response: String): Int
|
||||||
|
|
||||||
@Query("SELECT * FROM Logs where id=:id")
|
@Query("SELECT * FROM Logs where id=:id")
|
||||||
fun get(id: Long): Single<Logs>
|
fun get(id: Long): Single<Logs>
|
||||||
|
|
||||||
|
@ -17,6 +17,9 @@ class LogsRepository(private val logsDao: LogsDao) {
|
|||||||
@WorkerThread
|
@WorkerThread
|
||||||
fun updateStatus(id: Long, status: Int, response: String): Int = logsDao.updateStatus(id, status, response)
|
fun updateStatus(id: Long, status: Int, response: String): Int = logsDao.updateStatus(id, status, response)
|
||||||
|
|
||||||
|
@WorkerThread
|
||||||
|
fun updateResponse(id: Long, response: String): Int = logsDao.updateResponse(id, response)
|
||||||
|
|
||||||
fun getOne(id: Long) = logsDao.getOne(id)
|
fun getOne(id: Long) = logsDao.getOne(id)
|
||||||
|
|
||||||
}
|
}
|
@ -25,7 +25,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -56,67 +55,31 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(), View.OnClickListe
|
|||||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||||
private var CLIENT_FRAGMENT_LIST = listOf(
|
private var CLIENT_FRAGMENT_LIST = listOf(
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_clone),
|
getString(R.string.api_clone), "com.idormy.sms.forwarder.fragment.client.CloneFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_clone
|
||||||
"com.idormy.sms.forwarder.fragment.client.CloneFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_clone
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_sms_query),
|
getString(R.string.api_sms_query), "com.idormy.sms.forwarder.fragment.client.SmsQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_sms_query
|
||||||
"com.idormy.sms.forwarder.fragment.client.SmsQueryFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_sms_query
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_sms_send),
|
getString(R.string.api_sms_send), "com.idormy.sms.forwarder.fragment.client.SmsSendFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_sms_send
|
||||||
"com.idormy.sms.forwarder.fragment.client.SmsSendFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_sms_send
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_call_query),
|
getString(R.string.api_call_query), "com.idormy.sms.forwarder.fragment.client.CallQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_call_query
|
||||||
"com.idormy.sms.forwarder.fragment.client.CallQueryFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_call_query
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_contact_query),
|
getString(R.string.api_contact_query), "com.idormy.sms.forwarder.fragment.client.ContactQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_contact_query
|
||||||
"com.idormy.sms.forwarder.fragment.client.ContactQueryFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_contact_query
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_contact_add),
|
getString(R.string.api_contact_add), "com.idormy.sms.forwarder.fragment.client.ContactAddFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_contact_add
|
||||||
"com.idormy.sms.forwarder.fragment.client.ContactAddFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_contact_add
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_wol),
|
getString(R.string.api_wol), "com.idormy.sms.forwarder.fragment.client.WolSendFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_wol
|
||||||
"com.idormy.sms.forwarder.fragment.client.WolSendFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_wol
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_location),
|
getString(R.string.api_location), "com.idormy.sms.forwarder.fragment.client.LocationFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_location
|
||||||
"com.idormy.sms.forwarder.fragment.client.LocationFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_location
|
|
||||||
),
|
),
|
||||||
PageInfo(
|
PageInfo(
|
||||||
getString(R.string.api_battery_query),
|
getString(R.string.api_battery_query), "com.idormy.sms.forwarder.fragment.client.BatteryQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_battery_query
|
||||||
"com.idormy.sms.forwarder.fragment.client.BatteryQueryFragment",
|
|
||||||
"{\"\":\"\"}",
|
|
||||||
CoreAnim.slide,
|
|
||||||
R.drawable.icon_api_battery_query
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -348,8 +311,7 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(), View.OnClickListe
|
|||||||
XToastUtils.error(getString(R.string.disabled_on_the_server))
|
XToastUtils.error(getString(R.string.disabled_on_the_server))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST") PageOption.to(Class.forName(item.classPath) as Class<XPageFragment>).setNewActivity(true).open(this)
|
||||||
PageOption.to(Class.forName(item.classPath) as Class<XPageFragment>).setNewActivity(true).open(this)
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
Log.e(TAG, "onItemClick error: ${e.message}")
|
Log.e(TAG, "onItemClick error: ${e.message}")
|
||||||
@ -380,8 +342,7 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(), View.OnClickListe
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -196,11 +196,11 @@ class LogsFragment : BaseFragment<FragmentLogsBinding?>(), MsgPagingAdapter.OnIt
|
|||||||
.title(R.string.details)
|
.title(R.string.details)
|
||||||
.content(detailStr.toString())
|
.content(detailStr.toString())
|
||||||
.cancelable(true)
|
.cancelable(true)
|
||||||
.positiveText(R.string.del)
|
/*.positiveText(R.string.del)
|
||||||
.onPositive { _: MaterialDialog?, _: DialogAction? ->
|
.onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||||
viewModel.delete(item.id)
|
viewModel.delete(item.id)
|
||||||
XToastUtils.success(R.string.delete_log_toast)
|
XToastUtils.success(R.string.delete_log_toast)
|
||||||
}
|
}*/
|
||||||
.negativeText(R.string.resend)
|
.negativeText(R.string.resend)
|
||||||
.onNegative { _: MaterialDialog?, _: DialogAction? ->
|
.onNegative { _: MaterialDialog?, _: DialogAction? ->
|
||||||
XToastUtils.toast(R.string.resend_toast)
|
XToastUtils.toast(R.string.resend_toast)
|
||||||
|
@ -14,10 +14,8 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils
|
|||||||
import com.idormy.sms.forwarder.utils.Log
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.RSACrypt
|
import com.idormy.sms.forwarder.utils.RSACrypt
|
||||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
|
||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -66,11 +64,7 @@ class BatteryQueryFragment : BaseFragment<FragmentClientBatteryQueryBinding?>()
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -27,13 +27,11 @@ import com.idormy.sms.forwarder.utils.PhoneUtils
|
|||||||
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
||||||
import com.idormy.sms.forwarder.utils.RSACrypt
|
import com.idormy.sms.forwarder.utils.RSACrypt
|
||||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
|
||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -221,11 +219,7 @@ class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -359,8 +359,7 @@ class CloneFragment : BaseFragment<FragmentClientCloneBinding?>(), View.OnClickL
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -14,7 +14,6 @@ import com.idormy.sms.forwarder.utils.*
|
|||||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -98,11 +97,7 @@ class ContactAddFragment : BaseFragment<FragmentClientContactAddBinding?>(), Vie
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -27,13 +27,11 @@ import com.idormy.sms.forwarder.utils.PhoneUtils
|
|||||||
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
||||||
import com.idormy.sms.forwarder.utils.RSACrypt
|
import com.idormy.sms.forwarder.utils.RSACrypt
|
||||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
|
||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -198,11 +196,7 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -19,7 +19,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -98,8 +97,7 @@ class LocationFragment : BaseFragment<FragmentClientLocationBinding?>(), View.On
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -26,13 +26,11 @@ import com.idormy.sms.forwarder.utils.Log
|
|||||||
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
import com.idormy.sms.forwarder.utils.PlaceholderHelper
|
||||||
import com.idormy.sms.forwarder.utils.RSACrypt
|
import com.idormy.sms.forwarder.utils.RSACrypt
|
||||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
|
||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -209,11 +207,7 @@ class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -15,7 +15,6 @@ import com.idormy.sms.forwarder.utils.*
|
|||||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -116,11 +115,7 @@ class SmsSendFragment : BaseFragment<FragmentClientSmsSendBinding?>(), View.OnCl
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -18,7 +18,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.xuexiang.xaop.annotation.SingleClick
|
import com.xuexiang.xaop.annotation.SingleClick
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xpage.annotation.Page
|
import com.xuexiang.xpage.annotation.Page
|
||||||
@ -152,11 +151,7 @@ class WolSendFragment : BaseFragment<FragmentClientWolSendBinding?>(), View.OnCl
|
|||||||
var requestMsg: String = Gson().toJson(msgMap)
|
var requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
val postRequest = XHttp.post(requestUrl)
|
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||||
.keepJson(true)
|
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.timeStamp(true)
|
|
||||||
|
|
||||||
when (HttpServerUtils.clientSafetyMeasures) {
|
when (HttpServerUtils.clientSafetyMeasures) {
|
||||||
2 -> {
|
2 -> {
|
||||||
|
@ -222,7 +222,7 @@ object SendUtils {
|
|||||||
if (logId == null || logId == 0L) {
|
if (logId == null || logId == 0L) {
|
||||||
if (status == 2) {
|
if (status == 2) {
|
||||||
LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).post(getString(R.string.request_succeeded))
|
LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).post(getString(R.string.request_succeeded))
|
||||||
} else {
|
} else if (status == 0) {
|
||||||
LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(getString(R.string.request_failed) + response)
|
LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(getString(R.string.request_failed) + response)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -3,9 +3,12 @@ package com.idormy.sms.forwarder.utils.sdkinit
|
|||||||
import android.app.Application
|
import android.app.Application
|
||||||
import com.idormy.sms.forwarder.App
|
import com.idormy.sms.forwarder.App
|
||||||
import com.idormy.sms.forwarder.core.BaseActivity
|
import com.idormy.sms.forwarder.core.BaseActivity
|
||||||
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||||
import com.xuexiang.xaop.XAOP
|
import com.xuexiang.xaop.XAOP
|
||||||
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.XHttpSDK
|
import com.xuexiang.xhttp2.XHttpSDK
|
||||||
|
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||||
import com.xuexiang.xpage.PageConfig
|
import com.xuexiang.xpage.PageConfig
|
||||||
import com.xuexiang.xrouter.launcher.XRouter
|
import com.xuexiang.xrouter.launcher.XRouter
|
||||||
import com.xuexiang.xui.XUI
|
import com.xuexiang.xui.XUI
|
||||||
@ -61,13 +64,22 @@ class XBasicLibInit private constructor() {
|
|||||||
if (App.isDebug) {
|
if (App.isDebug) {
|
||||||
XHttpSDK.debug()
|
XHttpSDK.debug()
|
||||||
}
|
}
|
||||||
// XHttpSDK.debug(new CustomLoggingInterceptor()); //设置自定义的日志打印拦截器
|
|
||||||
//设置网络请求的全局基础地址
|
//设置网络请求的全局基础地址
|
||||||
XHttpSDK.setBaseUrl("https://gitee.com/")
|
XHttpSDK.setBaseUrl("https://gitee.com/")
|
||||||
// //设置动态参数添加拦截器
|
//设置自定义的日志打印拦截器
|
||||||
// XHttpSDK.addInterceptor(new CustomDynamicInterceptor());
|
//XHttpSDK.debug(LoggingInterceptor())
|
||||||
// //请求失效校验拦截器
|
//设置动态参数添加拦截器
|
||||||
// XHttpSDK.addInterceptor(new CustomExpiredInterceptor());
|
//XHttpSDK.addInterceptor(CustomDynamicInterceptor())
|
||||||
|
//请求失效校验拦截器
|
||||||
|
//XHttpSDK.addInterceptor(CustomExpiredInterceptor())
|
||||||
|
//设置全局超时时间
|
||||||
|
XHttp.getInstance()
|
||||||
|
.debug(App.isDebug)
|
||||||
|
.setCacheMode(CacheMode.NO_CACHE)
|
||||||
|
.setTimeout(SettingUtils.requestTimeout * 1000L) //单次超时时间
|
||||||
|
//.setRetryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
|
//.setRetryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
|
//.setRetryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,16 +2,15 @@ package com.idormy.sms.forwarder.utils.sender
|
|||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.BarkResult
|
import com.idormy.sms.forwarder.entity.result.BarkResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.BarkSetting
|
import com.idormy.sms.forwarder.entity.setting.BarkSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import javax.crypto.Cipher
|
import javax.crypto.Cipher
|
||||||
@ -98,12 +97,11 @@ class BarkUtils {
|
|||||||
|
|
||||||
request.ignoreHttpsCert() //忽略https证书
|
request.ignoreHttpsCert() //忽略https证书
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -2,16 +2,15 @@ package com.idormy.sms.forwarder.utils.sender
|
|||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.DingtalkResult
|
import com.idormy.sms.forwarder.entity.result.DingtalkResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.DingtalkGroupRobotSetting
|
import com.idormy.sms.forwarder.entity.setting.DingtalkGroupRobotSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
@ -100,12 +99,11 @@ class DingtalkGroupRobotUtils private constructor() {
|
|||||||
XHttp.post(requestUrl)
|
XHttp.post(requestUrl)
|
||||||
.upJson(requestMsg)
|
.upJson(requestMsg)
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.R
|
import com.idormy.sms.forwarder.R
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.DingtalkInnerRobotResult
|
import com.idormy.sms.forwarder.entity.result.DingtalkInnerRobotResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.DingtalkInnerRobotSetting
|
import com.idormy.sms.forwarder.entity.setting.DingtalkInnerRobotSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xutil.net.NetworkUtils
|
import com.xuexiang.xutil.net.NetworkUtils
|
||||||
@ -89,8 +88,15 @@ class DingtalkInnerRobotUtils private constructor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
request.upJson(requestMsg).keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
request.upJson(requestMsg)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.keepJson(true)
|
||||||
|
.ignoreHttpsCert()
|
||||||
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
@ -195,11 +201,12 @@ class DingtalkInnerRobotUtils private constructor() {
|
|||||||
request.upJson(requestMsg).headers("x-acs-dingtalk-access-token", accessToken)
|
request.upJson(requestMsg).headers("x-acs-dingtalk-access-token", accessToken)
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.ignoreHttpsCert()
|
.ignoreHttpsCert()
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.R
|
import com.idormy.sms.forwarder.R
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.FeishuAppResult
|
import com.idormy.sms.forwarder.entity.result.FeishuAppResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.FeishuAppSetting
|
import com.idormy.sms.forwarder.entity.setting.FeishuAppSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xutil.resource.ResUtils.getString
|
import com.xuexiang.xutil.resource.ResUtils.getString
|
||||||
@ -47,8 +46,16 @@ class FeishuAppUtils private constructor() {
|
|||||||
val requestMsg: String = Gson().toJson(msgMap)
|
val requestMsg: String = Gson().toJson(msgMap)
|
||||||
Log.i(TAG, "requestMsg:$requestMsg")
|
Log.i(TAG, "requestMsg:$requestMsg")
|
||||||
|
|
||||||
XHttp.post(requestUrl).upJson(requestMsg).keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
XHttp.post(requestUrl)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.upJson(requestMsg)
|
||||||
|
.keepJson(true)
|
||||||
|
.ignoreHttpsCert()
|
||||||
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
@ -115,11 +122,12 @@ class FeishuAppUtils private constructor() {
|
|||||||
val accessToken: String by SharedPreference("feishu_access_token_" + setting.appId, "")
|
val accessToken: String by SharedPreference("feishu_access_token_" + setting.appId, "")
|
||||||
XHttp.post(requestUrl).upJson(requestMsg).headers("Authorization", "Bearer $accessToken").keepJson(true)
|
XHttp.post(requestUrl).upJson(requestMsg).headers("Authorization", "Bearer $accessToken").keepJson(true)
|
||||||
//.ignoreHttpsCert()
|
//.ignoreHttpsCert()
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.FeishuResult
|
import com.idormy.sms.forwarder.entity.result.FeishuResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.FeishuSetting
|
import com.idormy.sms.forwarder.entity.setting.FeishuSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.Date
|
||||||
|
import java.util.Locale
|
||||||
import javax.crypto.Mac
|
import javax.crypto.Mac
|
||||||
import javax.crypto.spec.SecretKeySpec
|
import javax.crypto.spec.SecretKeySpec
|
||||||
|
|
||||||
@ -135,12 +135,11 @@ class FeishuUtils private constructor() {
|
|||||||
XHttp.post(requestUrl)
|
XHttp.post(requestUrl)
|
||||||
.upJson(requestMsg)
|
.upJson(requestMsg)
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.GotifyResult
|
import com.idormy.sms.forwarder.entity.result.GotifyResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.GotifySetting
|
import com.idormy.sms.forwarder.entity.setting.GotifySetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
|
|
||||||
@ -55,12 +54,11 @@ class GotifyUtils {
|
|||||||
.params("priority", setting.priority)
|
.params("priority", setting.priority)
|
||||||
.ignoreHttpsCert() //忽略https证书
|
.ignoreHttpsCert() //忽略https证书
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -0,0 +1,130 @@
|
|||||||
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
|
import com.idormy.sms.forwarder.App
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
|
import com.xuexiang.xhttp2.interceptor.HttpLoggingInterceptor
|
||||||
|
import com.xuexiang.xhttp2.utils.HttpUtils
|
||||||
|
import com.xuexiang.xutil.data.DateUtils
|
||||||
|
import okhttp3.Connection
|
||||||
|
import okhttp3.Protocol
|
||||||
|
import okhttp3.Request
|
||||||
|
import okhttp3.Response
|
||||||
|
import okhttp3.ResponseBody
|
||||||
|
import okhttp3.internal.http.HttpHeaders
|
||||||
|
import java.io.IOException
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
|
@Suppress("PrivatePropertyName")
|
||||||
|
class LoggingInterceptor(private val logId: Long) : HttpLoggingInterceptor("custom") {
|
||||||
|
|
||||||
|
private val TAG: String = LoggingInterceptor::class.java.simpleName
|
||||||
|
|
||||||
|
init {
|
||||||
|
level = if (App.isDebug) Level.BODY else Level.PARAM
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun log(message: String) {
|
||||||
|
Log.d(TAG, message)
|
||||||
|
//状态=-1,不更新原状态
|
||||||
|
SendUtils.updateLogs(logId, -1, message)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录请求日志
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param connection
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
@Throws(IOException::class)
|
||||||
|
override fun logForRequest(request: Request, connection: Connection?) {
|
||||||
|
if (level != Level.PARAM) {
|
||||||
|
log("------REQUEST------" + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())))
|
||||||
|
}
|
||||||
|
val logBody = level == Level.BODY || level == Level.PARAM
|
||||||
|
val logHeaders = level == Level.BODY || level == Level.HEADERS
|
||||||
|
val requestBody = request.body()
|
||||||
|
val hasRequestBody = requestBody != null
|
||||||
|
val protocol = connection?.protocol() ?: Protocol.HTTP_1_1
|
||||||
|
|
||||||
|
try {
|
||||||
|
val requestStartMessage = "--> ${request.method()} ${request.url()} $protocol"
|
||||||
|
log(requestStartMessage)
|
||||||
|
|
||||||
|
if (logHeaders) {
|
||||||
|
val headers = request.headers()
|
||||||
|
for (i in 0 until headers.size()) {
|
||||||
|
log("\t${headers.name(i)}: ${headers.value(i)}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (logBody && hasRequestBody) {
|
||||||
|
if (HttpUtils.isPlaintext(requestBody?.contentType())) {
|
||||||
|
log("\tbody:" + bodyToString(request))
|
||||||
|
} else {
|
||||||
|
log("\tbody: maybe [file part] , too large too print , ignored!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
onError(e)
|
||||||
|
} finally {
|
||||||
|
if (level != Level.PARAM) {
|
||||||
|
log("--> END ${request.method()}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录响应日志
|
||||||
|
*
|
||||||
|
* @param response
|
||||||
|
* @param tookMs 请求花费的时间
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
override fun logForResponse(response: Response, tookMs: Long): Response {
|
||||||
|
if (level != Level.PARAM) {
|
||||||
|
log("------RESPONSE------" + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())))
|
||||||
|
}
|
||||||
|
val builder = response.newBuilder()
|
||||||
|
val clone = builder.build()
|
||||||
|
var responseBody = clone.body()
|
||||||
|
val logBody = level == Level.BODY || level == Level.PARAM
|
||||||
|
val logHeaders = level == Level.BODY || level == Level.HEADERS
|
||||||
|
|
||||||
|
try {
|
||||||
|
log("<-- ${clone.code()} ${clone.message()} ${clone.request().url()} ($tookMs ms)")
|
||||||
|
if (logHeaders) {
|
||||||
|
log(" ")
|
||||||
|
val headers = clone.headers()
|
||||||
|
for (i in 0 until headers.size()) {
|
||||||
|
log("\t${headers.name(i)}: ${headers.value(i)}")
|
||||||
|
}
|
||||||
|
log(" ")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (logBody && HttpHeaders.hasBody(clone)) {
|
||||||
|
if (HttpUtils.isPlaintext(responseBody?.contentType())) {
|
||||||
|
val body = responseBody?.string()
|
||||||
|
log("\tbody:$body")
|
||||||
|
responseBody = ResponseBody.create(responseBody?.contentType(), body ?: "")
|
||||||
|
return response.newBuilder().body(responseBody).build()
|
||||||
|
} else {
|
||||||
|
log("\tbody: maybe [file part] , too large too print , ignored!")
|
||||||
|
}
|
||||||
|
if (level != Level.PARAM) {
|
||||||
|
log(" ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
onError(e)
|
||||||
|
} finally {
|
||||||
|
if (level != Level.PARAM) {
|
||||||
|
log("<-- END HTTP")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,17 +1,16 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.R
|
import com.idormy.sms.forwarder.R
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.PushplusResult
|
import com.idormy.sms.forwarder.entity.result.PushplusResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.PushplusSetting
|
import com.idormy.sms.forwarder.entity.setting.PushplusSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xutil.resource.ResUtils.getString
|
import com.xuexiang.xutil.resource.ResUtils.getString
|
||||||
@ -69,12 +68,11 @@ class PushplusUtils private constructor() {
|
|||||||
XHttp.post(requestUrl)
|
XHttp.post(requestUrl)
|
||||||
.upJson(requestMsg)
|
.upJson(requestMsg)
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.ServerchanResult
|
import com.idormy.sms.forwarder.entity.result.ServerchanResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.ServerchanSetting
|
import com.idormy.sms.forwarder.entity.setting.ServerchanSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
|
|
||||||
@ -49,12 +48,11 @@ class ServerchanUtils {
|
|||||||
if (!TextUtils.isEmpty(setting.openid)) request.params("group", setting.openid)
|
if (!TextUtils.isEmpty(setting.openid)) request.params("group", setting.openid)
|
||||||
|
|
||||||
request.keepJson(true)
|
request.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -1,23 +1,26 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.TelegramResult
|
import com.idormy.sms.forwarder.entity.result.TelegramResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.TelegramSetting
|
import com.idormy.sms.forwarder.entity.setting.TelegramSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xutil.net.NetworkUtils
|
import com.xuexiang.xutil.net.NetworkUtils
|
||||||
import okhttp3.Credentials
|
import okhttp3.Credentials
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import okhttp3.Route
|
import okhttp3.Route
|
||||||
import java.net.*
|
import java.net.Authenticator
|
||||||
|
import java.net.InetSocketAddress
|
||||||
|
import java.net.PasswordAuthentication
|
||||||
|
import java.net.Proxy
|
||||||
|
import java.net.URLEncoder
|
||||||
|
|
||||||
class TelegramUtils private constructor() {
|
class TelegramUtils private constructor() {
|
||||||
companion object {
|
companion object {
|
||||||
@ -106,12 +109,11 @@ class TelegramUtils private constructor() {
|
|||||||
|
|
||||||
request.keepJson(true)
|
request.keepJson(true)
|
||||||
//.ignoreHttpsCert()
|
//.ignoreHttpsCert()
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -3,16 +3,15 @@ package com.idormy.sms.forwarder.utils.sender
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.setting.WebhookSetting
|
import com.idormy.sms.forwarder.entity.setting.WebhookSetting
|
||||||
import com.idormy.sms.forwarder.utils.AppUtils
|
import com.idormy.sms.forwarder.utils.AppUtils
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
@ -182,12 +181,11 @@ class WebhookUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request.ignoreHttpsCert() //忽略https证书
|
request.ignoreHttpsCert() //忽略https证书
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -1,19 +1,17 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.R
|
import com.idormy.sms.forwarder.R
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.DingtalkResult
|
|
||||||
import com.idormy.sms.forwarder.entity.result.WeworkAgentResult
|
import com.idormy.sms.forwarder.entity.result.WeworkAgentResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.WeworkAgentSetting
|
import com.idormy.sms.forwarder.entity.setting.WeworkAgentSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
import com.xuexiang.xutil.net.NetworkUtils
|
import com.xuexiang.xutil.net.NetworkUtils
|
||||||
@ -87,8 +85,14 @@ class WeworkAgentUtils private constructor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
request.keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
request.keepJson(true)
|
||||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.ignoreHttpsCert()
|
||||||
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
@ -181,11 +185,15 @@ class WeworkAgentUtils private constructor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
request.upJson(requestMsg).keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
request.upJson(requestMsg)
|
||||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.keepJson(true)
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.ignoreHttpsCert()
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
Log.e(TAG, e.detailMessage)
|
Log.e(TAG, e.detailMessage)
|
||||||
@ -197,7 +205,7 @@ class WeworkAgentUtils private constructor() {
|
|||||||
override fun onSuccess(response: String) {
|
override fun onSuccess(response: String) {
|
||||||
Log.i(TAG, response)
|
Log.i(TAG, response)
|
||||||
|
|
||||||
val resp = Gson().fromJson(response, DingtalkResult::class.java)
|
val resp = Gson().fromJson(response, WeworkAgentResult::class.java)
|
||||||
val status = if (resp?.errcode == 0L) 2 else 0
|
val status = if (resp?.errcode == 0L) 2 else 0
|
||||||
SendUtils.updateLogs(logId, status, response)
|
SendUtils.updateLogs(logId, status, response)
|
||||||
SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId)
|
SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId)
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
package com.idormy.sms.forwarder.utils.sender
|
package com.idormy.sms.forwarder.utils.sender
|
||||||
|
|
||||||
import com.idormy.sms.forwarder.utils.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.idormy.sms.forwarder.database.entity.Rule
|
import com.idormy.sms.forwarder.database.entity.Rule
|
||||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||||
import com.idormy.sms.forwarder.entity.result.WeworkRobotResult
|
import com.idormy.sms.forwarder.entity.result.WeworkRobotResult
|
||||||
import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting
|
import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting
|
||||||
|
import com.idormy.sms.forwarder.utils.Log
|
||||||
import com.idormy.sms.forwarder.utils.SendUtils
|
import com.idormy.sms.forwarder.utils.SendUtils
|
||||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||||
import com.xuexiang.xhttp2.XHttp
|
import com.xuexiang.xhttp2.XHttp
|
||||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
|
||||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||||
import com.xuexiang.xhttp2.exception.ApiException
|
import com.xuexiang.xhttp2.exception.ApiException
|
||||||
|
|
||||||
@ -63,12 +62,11 @@ class WeworkRobotUtils private constructor() {
|
|||||||
XHttp.post(requestUrl)
|
XHttp.post(requestUrl)
|
||||||
.upJson(requestMsg)
|
.upJson(requestMsg)
|
||||||
.keepJson(true)
|
.keepJson(true)
|
||||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
|
||||||
.cacheMode(CacheMode.NO_CACHE)
|
|
||||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||||
.timeStamp(true)
|
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||||
|
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||||
.execute(object : SimpleCallBack<String>() {
|
.execute(object : SimpleCallBack<String>() {
|
||||||
|
|
||||||
override fun onError(e: ApiException) {
|
override fun onError(e: ApiException) {
|
||||||
|
@ -21,8 +21,20 @@ class UpdateLogsWorker(
|
|||||||
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
|
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val sendResponseJson = inputData.getString(Worker.updateLogs)
|
val sendResponseJson = inputData.getString(Worker.updateLogs)
|
||||||
|
Log.d("UpdateLogsWorker", "UpdateLogsWorker sendResponseJson: $sendResponseJson")
|
||||||
val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java)
|
val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java)
|
||||||
Core.logs.updateStatus(sendResponse.logId, sendResponse.status, sendResponse.response + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())))
|
if (sendResponse.logId == 0L) {
|
||||||
|
Log.e("UpdateLogsWorker", "UpdateLogsWorker error: logId is 0")
|
||||||
|
return@withContext Result.failure()
|
||||||
|
}
|
||||||
|
if (sendResponse.status >= 0) {
|
||||||
|
val response = sendResponse.response + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()))
|
||||||
|
Thread.sleep(100) //让status=-1的日志先更新
|
||||||
|
Core.logs.updateStatus(sendResponse.logId, sendResponse.status, response)
|
||||||
|
} else {
|
||||||
|
Core.logs.updateResponse(sendResponse.logId, sendResponse.response)
|
||||||
|
}
|
||||||
|
|
||||||
return@withContext Result.success()
|
return@withContext Result.success()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user