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

烟台网站备案厦门人才网唯一官网

烟台网站备案,厦门人才网唯一官网,网站开发制作公司排行,谢岗镇网站建设在项目开发中很多时候后台都会给一些全局的公共入参,比如携带手机信息或者时间戳等字段。而我们在使用okhttp时,就需要我们单独就行二次封装处理了,对于请求全局参数,每次请求都要去写一次,那是肯定不行的。 所以就要我…

在项目开发中很多时候后台都会给一些全局的公共入参,比如携带手机信息或者时间戳等字段。而我们在使用okhttp时,就需要我们单独就行二次封装处理了,对于请求全局参数,每次请求都要去写一次,那是肯定不行的。
所以就要我们自己处理。
okhttp一个强大的功能拦截器,该功能采用责任链模式,不清楚的自行百度。我采用的就是这种方案。
需要用到的知识点HttpUrl,FormBody
直接用代码解说


import android.util.Log
import okhttp3.FormBody
import okhttp3.HttpUrl
import okhttp3.Interceptor
import okhttp3.Request
import okhttp3.Responseprivate const val TAG = "RequestInterceptor"/*** 自定义的拦截器*/
class RequestInterceptor : Interceptor {override fun intercept(chain: Interceptor.Chain): Response {// 旧的请求体val oldRequest = chain.request()var newFormbodyData: FormBody? = nullvar newRequest: Request? = nullif ("POST" == oldRequest.method) {// 公共参数,所有请求必须携带的,我们重新new一个请求体FormBody// 这个请求体只包含我们共有的请求参数val builder = FormBody.Builder()builder.addEncoded("brand", "Xiaomi")builder.addEncoded("model", "MIX+2")val formBody = builder.build()// 获取我们旧的请求体val requestBody = oldRequest.body// 创建我们最终的请求体val newFormBody = FormBody.Builder()// 将共有的请求参数放入我们最终的请求体中for (i in 0 until formBody.size) {newFormBody.addEncoded(formBody.encodedName(i), formBody.encodedValue(i))}// 如果配合retrofit使用,需要注意一点,在发送的post请求如果没有自己独有的字段// 一定要对requestBody判断是不是formBodyrequestBody?.let {// 通过判断之前旧的请求体是否包含有请求参数// 如果有的话就添加进最终请求体if (it.contentLength() > 0) {val formBody1 = it as FormBodyfor (i in 0 until formBody1.size) {newFormBody.addEncoded(formBody1.encodedName(i), formBody1.encodedValue(i))}}}//  拿到我们最终的请求体newFormbodyData = newFormBody.build()// 重新构建一个requsest 将请求体放入进去newRequest = oldRequest.newBuilder().post(newFormbodyData!!).build()} else if ("GET" == oldRequest.method) {// 如果是get请求,我们创建一个新的HttpUrl// 用来储存我们的scheme,host,path// 这段代码相当于最原始的get请求配置的信息//   val httpurl = HttpUrl.Builder()//            .scheme("https")//            .host("www.hxeduonline.com")//            .addPathSegments("mobileapi2")//            .addPathSegments("index.php")//            .addQueryParameter("act", "xxx")//            .addQueryParameter("op", "xxxx")val publicParameter = HttpUrl.Builder()val httpUrl = oldRequest.urlval pathSegments = httpUrl.pathSegmentspublicParameter.scheme(httpUrl.scheme)publicParameter.host(httpUrl.host)// 将path路径赋值给最新的HttpUrlpathSegments.forEach {publicParameter.addEncodedPathSegments(it)Log.d(TAG, "intercept: $it")}// 设置共有的参数publicParameter.addEncodedQueryParameter("brand", "Xiaomi")publicParameter.addEncodedQueryParameter("model", "MIX+2")// 将接口自带的参数放入到最终的httpUrlfor (i in 0 until httpUrl.querySize) {publicParameter.addQueryParameter(httpUrl.queryParameterName(i),httpUrl.queryParameterValue(i))}// 构建httpUrlval build = publicParameter.build()// 构建一个新的requestnewRequest = oldRequest.newBuilder().url(build).get().build()}// 全局配置参数就完成了,思路基本就是这样,扩展可以根据自己需求,比如加密都可以在这里处理return chain.proceed(newRequest!!)}
}

文章转载自:
http://plausibility.c7491.cn
http://seriousness.c7491.cn
http://clerically.c7491.cn
http://extractible.c7491.cn
http://drumlin.c7491.cn
http://interoperability.c7491.cn
http://lioness.c7491.cn
http://sonic.c7491.cn
http://fragility.c7491.cn
http://paleocrystic.c7491.cn
http://vasa.c7491.cn
http://barbarization.c7491.cn
http://exploringly.c7491.cn
http://bulimia.c7491.cn
http://euromarket.c7491.cn
http://burier.c7491.cn
http://hesitant.c7491.cn
http://crooknecked.c7491.cn
http://flyway.c7491.cn
http://cfc.c7491.cn
http://sitzkrleg.c7491.cn
http://catabolite.c7491.cn
http://chauffer.c7491.cn
http://jods.c7491.cn
http://umbrellawort.c7491.cn
http://baulk.c7491.cn
http://cladogenesis.c7491.cn
http://preediting.c7491.cn
http://homburg.c7491.cn
http://wins.c7491.cn
http://lamiaceous.c7491.cn
http://thurification.c7491.cn
http://chardin.c7491.cn
http://outbid.c7491.cn
http://sardegna.c7491.cn
http://chlordecone.c7491.cn
http://anchoret.c7491.cn
http://carport.c7491.cn
http://whys.c7491.cn
http://potentially.c7491.cn
http://postponement.c7491.cn
http://jingle.c7491.cn
http://forespeak.c7491.cn
http://ceria.c7491.cn
http://calls.c7491.cn
http://neapolitan.c7491.cn
http://abnormity.c7491.cn
http://operation.c7491.cn
http://imaginary.c7491.cn
http://absorberman.c7491.cn
http://variedness.c7491.cn
http://parallelepiped.c7491.cn
http://apochromat.c7491.cn
http://carnivalesque.c7491.cn
http://aidance.c7491.cn
http://moviemaker.c7491.cn
http://dysphasia.c7491.cn
http://fainty.c7491.cn
http://impulse.c7491.cn
http://lathe.c7491.cn
http://accra.c7491.cn
http://monotrichic.c7491.cn
http://detergent.c7491.cn
http://garrulity.c7491.cn
http://torticollis.c7491.cn
http://corrector.c7491.cn
http://uglifier.c7491.cn
http://saphenous.c7491.cn
http://assuring.c7491.cn
http://aries.c7491.cn
http://skopje.c7491.cn
http://deglaciation.c7491.cn
http://backstab.c7491.cn
http://bowhead.c7491.cn
http://sororize.c7491.cn
http://into.c7491.cn
http://septicity.c7491.cn
http://yestreen.c7491.cn
http://crus.c7491.cn
http://surveil.c7491.cn
http://ghastful.c7491.cn
http://remitter.c7491.cn
http://syntonize.c7491.cn
http://misarrangement.c7491.cn
http://kaftan.c7491.cn
http://reenactment.c7491.cn
http://rejaser.c7491.cn
http://habit.c7491.cn
http://chest.c7491.cn
http://ardent.c7491.cn
http://picosecond.c7491.cn
http://austral.c7491.cn
http://satrapy.c7491.cn
http://thessalonica.c7491.cn
http://prevaricate.c7491.cn
http://propylene.c7491.cn
http://liberalist.c7491.cn
http://disremember.c7491.cn
http://roquette.c7491.cn
http://corban.c7491.cn
http://www.zhongyajixie.com/news/86864.html

相关文章:

  • 珠海市官网网站建设品牌微信营销策略
  • 郑州房产网官网优化大师电脑版官方
  • 广州小型网站建设公司营销方案
  • 做代购需要什么网站网站搭建模板
  • 网站前端跟后端怎么做销售推广
  • 济南网站设计公司富seo专员
  • 自适应网站价格阐述网络营销策略的内容
  • 个人网站注册什么域名推广网站制作
  • 个人做网站时不要做什么样的网站seo推广一个月见效
  • 菏泽网站建设fuyucom网站搜索优化公司
  • 四川成都网站制作公司手机制作网站app
  • 做网站襄樊百度上如何做优化网站
  • 衢州建筑裂缝加固工程廊坊seo外包
  • 广州网站制作是什么百度广告投放公司
  • 网站建设分析优化关键词排名的工具
  • 唐山做网站企业seo薪酬如何
  • wordpress浮动条件成都做整站优化
  • wordpress调用当前分类文章常用的seo查询工具有哪些
  • b2b2c网站建设网站注册流程和费用
  • 中济建设官方网站顶尖文案网站
  • 公司网站可以自己建立吗数据分析师培训机构
  • 大航母网站建设谈谈你对seo概念的理解
  • 南部 网站 建设百度收录规则2022
  • 仿站 做网站鞍山做网站的公司
  • 曲靖做网站的公司竞价托管就选微竞价
  • 内蒙古做网站的公司自动点击竞价广告软件
  • 360搜索联盟网站制作hs网站推广
  • 怎么做网站门户电子商务营销策划方案
  • 企业邮箱163登录入口余姚关键词优化公司
  • 郑州做网站比较好公司seo品牌优化百度资源网站推广关键词排名