okhttp关于header修改

编程入门 行业动态 更新时间:2024-10-21 02:43:14

<a href=https://www.elefans.com/category/jswz/34/1755823.html style=okhttp关于header修改"/>

okhttp关于header修改

在项目开发中,需要和后台定义一些规则,比如一些请求头信息,Content-Type,User-Agent。不能使用默认的,那么就得我们自己配置全局的。
基于okhttp4.0以上版本修改步骤:
创建我们自己的MediaType, create已经被废弃

val mediaType= "application/xxxxx-xxxxx".toMediaTypeOrNull()

创建完成后,将我们的requestbody转换成byteString 或者String或者byteArray都可以,在这里强调下如果是转换成string ,Content-Type对应的value会加上utf-8,这里需要注意下。

//三种转换方法private fun bodyToString(request: RequestBody): String {return try {val buffer = Buffer()if (request != null) request.writeTo(buffer) else return ""buffer.readUtf8()} catch (e: IOException) {"did not work"}}private fun bodyByteString(request: RequestBody): ByteString {val buffer = Buffer()request.writeTo(buffer)return buffer.readByteString()}private fun bodyByteArray(request: RequestBody): ByteArray {val buffer = Buffer()request.writeTo(buffer)val readUtf8 = buffer.readUtf8()return readUtf8.toByteArray()}

接下来就简单了

// 示例代码
// newFormbodyData 我们自己的body
val newBody= bodyByteString(newFormbodyData).toRequestBody(mediaType)
最后一步就是将得到的请求体放入到我们的request中post方法中

这样我们就完成了content-type的替换,
User-Agent这些信息我们可以直接在request使用addHeader添加即可,这些信息可以在BridgeInterceptor拦截器中查看。

更多推荐

okhttp关于header修改

本文发布于:2023-11-15 10:21:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1598091.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:okhttp   header

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!