合肥网站定制,保险公司网站查询,广州哪家网站建设公司好,男男做视频网站在项目开发中#xff0c;需要和后台定义一些规则,比如一些请求头信息#xff0c;Content-Type#xff0c;User-Agent。不能使用默认的#xff0c;那么就得我们自己配置全局的。 基于okhttp4.0以上版本修改步骤#xff1a; 创建我们自己的MediaType, create已经被废弃
val…在项目开发中需要和后台定义一些规则,比如一些请求头信息Content-TypeUser-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拦截器中查看。