优化:请求重试机制(无网络时也执行重试机制 & 修正延迟时间单位错误)
This commit is contained in:
parent
0f83526ece
commit
388d94a7cf
|
@ -44,6 +44,15 @@ interface LogsDao {
|
|||
)
|
||||
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")
|
||||
fun get(id: Long): Single<Logs>
|
||||
|
||||
|
|
|
@ -17,6 +17,9 @@ class LogsRepository(private val logsDao: LogsDao) {
|
|||
@WorkerThread
|
||||
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)
|
||||
|
||||
}
|
|
@ -25,7 +25,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -56,67 +55,31 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(), View.OnClickListe
|
|||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
private var CLIENT_FRAGMENT_LIST = listOf(
|
||||
PageInfo(
|
||||
getString(R.string.api_clone),
|
||||
"com.idormy.sms.forwarder.fragment.client.CloneFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_clone
|
||||
getString(R.string.api_clone), "com.idormy.sms.forwarder.fragment.client.CloneFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_clone
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_sms_query),
|
||||
"com.idormy.sms.forwarder.fragment.client.SmsQueryFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_sms_query
|
||||
getString(R.string.api_sms_query), "com.idormy.sms.forwarder.fragment.client.SmsQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_sms_query
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_sms_send),
|
||||
"com.idormy.sms.forwarder.fragment.client.SmsSendFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_sms_send
|
||||
getString(R.string.api_sms_send), "com.idormy.sms.forwarder.fragment.client.SmsSendFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_sms_send
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_call_query),
|
||||
"com.idormy.sms.forwarder.fragment.client.CallQueryFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_call_query
|
||||
getString(R.string.api_call_query), "com.idormy.sms.forwarder.fragment.client.CallQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_call_query
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_contact_query),
|
||||
"com.idormy.sms.forwarder.fragment.client.ContactQueryFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_contact_query
|
||||
getString(R.string.api_contact_query), "com.idormy.sms.forwarder.fragment.client.ContactQueryFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_contact_query
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_contact_add),
|
||||
"com.idormy.sms.forwarder.fragment.client.ContactAddFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_contact_add
|
||||
getString(R.string.api_contact_add), "com.idormy.sms.forwarder.fragment.client.ContactAddFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_contact_add
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_wol),
|
||||
"com.idormy.sms.forwarder.fragment.client.WolSendFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_wol
|
||||
getString(R.string.api_wol), "com.idormy.sms.forwarder.fragment.client.WolSendFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_wol
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_location),
|
||||
"com.idormy.sms.forwarder.fragment.client.LocationFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_location
|
||||
getString(R.string.api_location), "com.idormy.sms.forwarder.fragment.client.LocationFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_location
|
||||
),
|
||||
PageInfo(
|
||||
getString(R.string.api_battery_query),
|
||||
"com.idormy.sms.forwarder.fragment.client.BatteryQueryFragment",
|
||||
"{\"\":\"\"}",
|
||||
CoreAnim.slide,
|
||||
R.drawable.icon_api_battery_query
|
||||
getString(R.string.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))
|
||||
return
|
||||
}
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
PageOption.to(Class.forName(item.classPath) as Class<XPageFragment>).setNewActivity(true).open(this)
|
||||
@Suppress("UNCHECKED_CAST") PageOption.to(Class.forName(item.classPath) as Class<XPageFragment>).setNewActivity(true).open(this)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
Log.e(TAG, "onItemClick error: ${e.message}")
|
||||
|
@ -380,8 +342,7 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(), View.OnClickListe
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -196,11 +196,11 @@ class LogsFragment : BaseFragment<FragmentLogsBinding?>(), MsgPagingAdapter.OnIt
|
|||
.title(R.string.details)
|
||||
.content(detailStr.toString())
|
||||
.cancelable(true)
|
||||
.positiveText(R.string.del)
|
||||
/*.positiveText(R.string.del)
|
||||
.onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||
viewModel.delete(item.id)
|
||||
XToastUtils.success(R.string.delete_log_toast)
|
||||
}
|
||||
}*/
|
||||
.negativeText(R.string.resend)
|
||||
.onNegative { _: MaterialDialog?, _: DialogAction? ->
|
||||
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.RSACrypt
|
||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -66,11 +64,7 @@ class BatteryQueryFragment : BaseFragment<FragmentClientBatteryQueryBinding?>()
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
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.RSACrypt
|
||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -221,11 +219,7 @@ class CallQueryFragment : BaseFragment<FragmentClientCallQueryBinding?>() {
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -359,8 +359,7 @@ class CloneFragment : BaseFragment<FragmentClientCloneBinding?>(), View.OnClickL
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -14,7 +14,6 @@ import com.idormy.sms.forwarder.utils.*
|
|||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -98,11 +97,7 @@ class ContactAddFragment : BaseFragment<FragmentClientContactAddBinding?>(), Vie
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
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.RSACrypt
|
||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -198,11 +196,7 @@ class ContactQueryFragment : BaseFragment<FragmentClientContactQueryBinding?>()
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -19,7 +19,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -98,8 +97,7 @@ class LocationFragment : BaseFragment<FragmentClientLocationBinding?>(), View.On
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
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.RSACrypt
|
||||
import com.idormy.sms.forwarder.utils.SM4Crypt
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -209,11 +207,7 @@ class SmsQueryFragment : BaseFragment<FragmentClientSmsQueryBinding?>() {
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -15,7 +15,6 @@ import com.idormy.sms.forwarder.utils.*
|
|||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -116,11 +115,7 @@ class SmsSendFragment : BaseFragment<FragmentClientSmsSendBinding?>(), View.OnCl
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -18,7 +18,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils
|
|||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
|
@ -152,11 +151,7 @@ class WolSendFragment : BaseFragment<FragmentClientWolSendBinding?>(), View.OnCl
|
|||
var requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
val postRequest = XHttp.post(requestUrl)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.timeStamp(true)
|
||||
val postRequest = XHttp.post(requestUrl).keepJson(true).timeStamp(true)
|
||||
|
||||
when (HttpServerUtils.clientSafetyMeasures) {
|
||||
2 -> {
|
||||
|
|
|
@ -222,7 +222,7 @@ object SendUtils {
|
|||
if (logId == null || logId == 0L) {
|
||||
if (status == 2) {
|
||||
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)
|
||||
}
|
||||
return
|
||||
|
|
|
@ -3,9 +3,12 @@ package com.idormy.sms.forwarder.utils.sdkinit
|
|||
import android.app.Application
|
||||
import com.idormy.sms.forwarder.App
|
||||
import com.idormy.sms.forwarder.core.BaseActivity
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.xuexiang.xaop.XAOP
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.XHttpSDK
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xpage.PageConfig
|
||||
import com.xuexiang.xrouter.launcher.XRouter
|
||||
import com.xuexiang.xui.XUI
|
||||
|
@ -61,13 +64,22 @@ class XBasicLibInit private constructor() {
|
|||
if (App.isDebug) {
|
||||
XHttpSDK.debug()
|
||||
}
|
||||
// XHttpSDK.debug(new CustomLoggingInterceptor()); //设置自定义的日志打印拦截器
|
||||
//设置网络请求的全局基础地址
|
||||
XHttpSDK.setBaseUrl("https://gitee.com/")
|
||||
// //设置动态参数添加拦截器
|
||||
// XHttpSDK.addInterceptor(new CustomDynamicInterceptor());
|
||||
// //请求失效校验拦截器
|
||||
// XHttpSDK.addInterceptor(new CustomExpiredInterceptor());
|
||||
//设置自定义的日志打印拦截器
|
||||
//XHttpSDK.debug(LoggingInterceptor())
|
||||
//设置动态参数添加拦截器
|
||||
//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.util.Base64
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.BarkResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import javax.crypto.Cipher
|
||||
|
@ -98,12 +97,11 @@ class BarkUtils {
|
|||
|
||||
request.ignoreHttpsCert() //忽略https证书
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -2,16 +2,15 @@ package com.idormy.sms.forwarder.utils.sender
|
|||
|
||||
import android.text.TextUtils
|
||||
import android.util.Base64
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.DingtalkResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import java.net.URLEncoder
|
||||
|
@ -100,12 +99,11 @@ class DingtalkGroupRobotUtils private constructor() {
|
|||
XHttp.post(requestUrl)
|
||||
.upJson(requestMsg)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.DingtalkInnerRobotResult
|
||||
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.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
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
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
request.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) {
|
||||
Log.e(TAG, e.detailMessage)
|
||||
|
@ -195,11 +201,12 @@ class DingtalkInnerRobotUtils private constructor() {
|
|||
request.upJson(requestMsg).headers("x-acs-dingtalk-access-token", accessToken)
|
||||
.keepJson(true)
|
||||
.ignoreHttpsCert()
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
.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) {
|
||||
Log.e(TAG, e.detailMessage)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.FeishuAppResult
|
||||
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.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xutil.resource.ResUtils.getString
|
||||
|
@ -47,8 +46,16 @@ class FeishuAppUtils private constructor() {
|
|||
val requestMsg: String = Gson().toJson(msgMap)
|
||||
Log.i(TAG, "requestMsg:$requestMsg")
|
||||
|
||||
XHttp.post(requestUrl).upJson(requestMsg).keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
XHttp.post(requestUrl)
|
||||
.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) {
|
||||
Log.e(TAG, e.detailMessage)
|
||||
|
@ -115,11 +122,12 @@ class FeishuAppUtils private constructor() {
|
|||
val accessToken: String by SharedPreference("feishu_access_token_" + setting.appId, "")
|
||||
XHttp.post(requestUrl).upJson(requestMsg).headers("Authorization", "Bearer $accessToken").keepJson(true)
|
||||
//.ignoreHttpsCert()
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
.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) {
|
||||
Log.e(TAG, e.detailMessage)
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.util.Base64
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.FeishuResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import javax.crypto.Mac
|
||||
import javax.crypto.spec.SecretKeySpec
|
||||
|
||||
|
@ -135,12 +135,11 @@ class FeishuUtils private constructor() {
|
|||
XHttp.post(requestUrl)
|
||||
.upJson(requestMsg)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.GotifyResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
|
||||
|
@ -55,12 +54,11 @@ class GotifyUtils {
|
|||
.params("priority", setting.priority)
|
||||
.ignoreHttpsCert() //忽略https证书
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
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
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.PushplusResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xutil.resource.ResUtils.getString
|
||||
|
@ -69,12 +68,11 @@ class PushplusUtils private constructor() {
|
|||
XHttp.post(requestUrl)
|
||||
.upJson(requestMsg)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.ServerchanResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
|
||||
|
@ -49,12 +48,11 @@ class ServerchanUtils {
|
|||
if (!TextUtils.isEmpty(setting.openid)) request.params("group", setting.openid)
|
||||
|
||||
request.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.TelegramResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xutil.net.NetworkUtils
|
||||
import okhttp3.Credentials
|
||||
import okhttp3.Response
|
||||
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() {
|
||||
companion object {
|
||||
|
@ -106,12 +109,11 @@ class TelegramUtils private constructor() {
|
|||
|
||||
request.keepJson(true)
|
||||
//.ignoreHttpsCert()
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -3,16 +3,15 @@ package com.idormy.sms.forwarder.utils.sender
|
|||
import android.annotation.SuppressLint
|
||||
import android.text.TextUtils
|
||||
import android.util.Base64
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.setting.WebhookSetting
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import java.net.URLEncoder
|
||||
|
@ -182,12 +181,11 @@ class WebhookUtils {
|
|||
}
|
||||
|
||||
request.ignoreHttpsCert() //忽略https证书
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
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.setting.WeworkAgentSetting
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.idormy.sms.forwarder.utils.SendUtils
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.SharedPreference
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
import com.xuexiang.xutil.net.NetworkUtils
|
||||
|
@ -87,8 +85,14 @@ class WeworkAgentUtils private constructor() {
|
|||
}
|
||||
}
|
||||
|
||||
request.keepJson(true).ignoreHttpsCert().timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE).timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
request.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) {
|
||||
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
|
||||
.cacheMode(CacheMode.NO_CACHE).retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true).execute(object : SimpleCallBack<String>() {
|
||||
request.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) {
|
||||
Log.e(TAG, e.detailMessage)
|
||||
|
@ -197,7 +205,7 @@ class WeworkAgentUtils private constructor() {
|
|||
override fun onSuccess(response: String) {
|
||||
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
|
||||
SendUtils.updateLogs(logId, status, response)
|
||||
SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId)
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
package com.idormy.sms.forwarder.utils.sender
|
||||
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.result.WeworkRobotResult
|
||||
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.SettingUtils
|
||||
import com.xuexiang.xhttp2.XHttp
|
||||
import com.xuexiang.xhttp2.cache.model.CacheMode
|
||||
import com.xuexiang.xhttp2.callback.SimpleCallBack
|
||||
import com.xuexiang.xhttp2.exception.ApiException
|
||||
|
||||
|
@ -63,12 +62,11 @@ class WeworkRobotUtils private constructor() {
|
|||
XHttp.post(requestUrl)
|
||||
.upJson(requestMsg)
|
||||
.keepJson(true)
|
||||
.timeOut((SettingUtils.requestTimeout * 1000).toLong()) //超时时间10s
|
||||
.cacheMode(CacheMode.NO_CACHE)
|
||||
.retryCount(SettingUtils.requestRetryTimes) //超时重试的次数
|
||||
.retryDelay(SettingUtils.requestDelayTime) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime) //超时重试叠加延时
|
||||
.timeStamp(true)
|
||||
.retryDelay(SettingUtils.requestDelayTime * 1000) //超时重试的延迟时间
|
||||
.retryIncreaseDelay(SettingUtils.requestDelayTime * 1000) //超时重试叠加延时
|
||||
.timeStamp(true) //url自动追加时间戳,避免缓存
|
||||
.addInterceptor(LoggingInterceptor(logId)) //增加一个log拦截器, 记录请求日志
|
||||
.execute(object : SimpleCallBack<String>() {
|
||||
|
||||
override fun onError(e: ApiException) {
|
||||
|
|
|
@ -21,8 +21,20 @@ class UpdateLogsWorker(
|
|||
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
|
||||
try {
|
||||
val sendResponseJson = inputData.getString(Worker.updateLogs)
|
||||
Log.d("UpdateLogsWorker", "UpdateLogsWorker sendResponseJson: $sendResponseJson")
|
||||
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()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
|
|
Loading…
Reference in New Issue