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

想学做网站学什么编程语言东南亚网站建设市场

想学做网站学什么编程语言,东南亚网站建设市场,广州网站建设南宁,小红书推广费用标准最近为了做一些网络上的优化,所以就得提前埋点,为后续网络优化提供数据支持。 主要是对发起请求埋点,请求错误埋点,客户端请求耗时埋点。 事件上报到阿里云,接入的是阿里的应用实时监控服务。 网络请求使用的是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/785655/

相关文章:

  • 专做网站社交网站开发用到的技术
  • 做网站程序怎么写免费ppt模板网址
  • 网站项目建设流程和项目方案巴士定制网站开发
  • 产品网站免费模板做竞价要会做网站吗
  • 外国网站的浏览器下载利用模板建网站
  • 风云办公ppt模板网站广安网站seo
  • 给你一个网站你怎么做的吗wordpress网站怎么仿
  • 小说网站首页模板网站不推广如何排名
  • 网站建设的电话西安免费做网站电话
  • 网站直播的功能怎样做南宁建筑网站
  • 怎么做网站旺铺装修wordpress菜单显示选项
  • 杭州网站建设维护网页上做网会员网站备案怎么写
  • 俄文网站全国最缺工的100个职业排行
  • 织梦网站根目录在哪里应用软件开发属于什么行业
  • discuz论坛和网站同步登录网站购买
  • j2ee 做网站工程项目管理软件 免费
  • 如何制造公司网站创意产品设计获奖作品
  • 给学校做网站大连开发区社保网站
  • 网站维护的要求济南网站建设铭盛信息
  • 广州本地门户网站做网站需要买域名吗
  • 网站物理结构优化包含网页优化吗seo综合查询是什么
  • 网站备案最快要几天青岛海川建设集团有限公司网站
  • 网站不更新王烨峰
  • 网站我们的客户预付网站制作费怎么做凭证
  • 薇诺娜经常在那个网站做特价台州平台网站建设
  • 中国建设银行网站首页手机银行张家港网站开发培训广告代理
  • 公司网站优化哪家好python做的网站有哪些
  • 投融网站建设方案东莞seo外包超联seo
  • 乐清网站优化推广东莞专业网站建设价钱
  • 网站如何定位wordpress相册插件下载