当前位置: 首页 > news >正文

古城做网站的公司网站模板 古典

古城做网站的公司,网站模板 古典,app网站搭建,潍坊网站建设首荐创美网络最近为了做一些网络上的优化,所以就得提前埋点,为后续网络优化提供数据支持。 主要是对发起请求埋点,请求错误埋点,客户端请求耗时埋点。 事件上报到阿里云,接入的是阿里的应用实时监控服务。 网络请求使用的是OhHttp…

最近为了做一些网络上的优化,所以就得提前埋点,为后续网络优化提供数据支持。
主要是对发起请求埋点,请求错误埋点,客户端请求耗时埋点。
事件上报到阿里云,接入的是阿里的应用实时监控服务。

网络请求使用的是OhHttp + Retrofit ,现在很多都是这么实现的了吧。
网络的埋点切入口,很容易就想到了 Interceptor,用起来了才觉得 Interceptor 是真的香,以前还只是觉得这个设计模式是真好。用到了才感觉是太香了。

上代码:

class ReportingInterceptor(val source: ACRSource) : Interceptor {private val gson = Gson()override fun intercept(chain: Interceptor.Chain): Response {val request = chain.request()val url = request.url.toString()AlibabaCloudRumUtil.requestStart(source, snapshots = url)val startTime = System.currentTimeMillis()val response = chain.proceed(request)AlibabaCloudRumUtil.requestCost(source,snapshots = url,System.currentTimeMillis() - startTime)// 判断是否是 HTTP 错误if (!response.isSuccessful) {AlibabaCloudRumUtil.requestFail(source,snapshots = url,params = AlibabaCloudRumUtil.errorMap(response.code.toString(),response.message))} else {val source = response.body?.source()source?.request(Long.MAX_VALUE)try {val buffer = source?.buffer// 业务错误逻辑上报val result = gson.fromJson(buffer?.clone()?.readString(Charset.forName("UTF-8")),BaseModel::class.java)if (result?.code != 0) {AlibabaCloudRumUtil.requestFail(ACRSource.COROUTINE,snapshots = url,params = ResultException("${result.code}",result?.message ?: "Unknown error").toMap())}} catch (ex: Exception) {AlibabaCloudRumUtil.requestFail(ACRSource.COROUTINE,snapshots = url,params = BusinessException.handlerException(ex).toMap())} finally {source?.close()}}return response}
}

网络请求上报是带上了URL,现在的Retrofit 的URL 在其他地方是真的不好拿,这 Interceptor 确实方便的很。
而网络耗时也比较容易,在
val response = chain.proceed(request)
前后记录时间就可以了,虽然跟抓包数据显示的网络耗时有差距,但是我们毕竟只是粗略的统计而已。
错误上报的话,包括了 http 请求错误和 code != 0 的业务数据错误,都是需要上报的。

如果需要在其他地方拿到 URL ,需要在 Interceptor 里处理,重新 new 一个 Response 返回,然后把 URL 塞到 Header 里面,在其他地方把 Header 中的 URL 读取出来。但是会产生一点性能开销,毕竟每个请求都需要 new 一个新的 Response 。

http://www.yayakq.cn/news/277425/

相关文章:

  • 长沙市建设厅网站上海做网站优化公司
  • 网站做宣传的免费渠道有那种小程序开发平台哪个公司的好
  • 哪个网站做二微码网站更换域名备案
  • 廊坊市建设局网站网站系统流程图
  • 零食类营销网站怎么做做花生的网站
  • 网站建设对旅游意义那个网站有帮人做图的
  • 廊坊网络推广建站福步外贸论坛怎样注册
  • wordpress建站需要多久a站app下载
  • 东莞网站推广定制公司泉州做网站工资
  • 上那个网站找手工活做jsp网站开发的环境要求
  • 备案过的网站换空间小公司做网站需要什么条件
  • 常州哪家做网站好虚拟主机空间 配置 网站
  • 网站改版会影响收录吗jsp与asp做的网站
  • phpcms v9网站性能优化超酷网站模板
  • 小说素材网站建网站需要什么要求
  • 做网站常见的语言免费个人简历模板网站
  • 怎么给自己做个网站网站建设中忽略的字体违法行为
  • 珠海专业做网站公司个人备案网站用于企业
  • 汕头论坛网站建设营销网站建设一薇
  • 历史网站怎么做品牌设计
  • 西安学网站开发哪边好网站服务器有哪些类型有哪些类型有哪些类型有哪些类型
  • 咸宁网站建设哪家好织梦淘宝客网站
  • 微网站 注册网站建设开发价格怎么算
  • 国外注册域名的网站wordpress英文导航模板
  • 北京住房与城乡建设厅网站公司企业员工培训
  • 网站截流做cpa影视公司组织架构
  • 背景网站建设公司厦门海沧建设局网站
  • 潍坊 优化型网站建设济宁网站建设 水木
  • 机械行业网站建设制作开发方案室内设计公司取名字大全集
  • 企业网站建设的重要性及意义广东外贸网站推广公司