OkHttp4 RequestBody.create()弃用解决方案
OKhttp3已升级到Okhttp4 ,编写语言由java过渡到kotlin
okhttp3经常用到的post提交数据的,RequestBody.create() 已过时,并且换成了kotlin的新特性写法!
okhttp3 post请求的代码(4.0版本已过时) :
val request:Request=Request.Builder() .post(RequestBody.create(MediaType.parse("application/json;charset=utf8"), "body参数")).build() 复制代码
okhttp4 post最新请求的代码:
Kotlin版本
import okhttp3.MediaType.Companion.toMediaType import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.asRequestBody //String转RequestBody String、ByteArray、ByteString都可以用toRequestBody() val stringBody ="body参数".toRequestBody("application/json;charset=utf-8".toMediaType()) val request:Request=Request .Builder() .post(stringBody) .build() //File转RequestBody val file=File("") val fileBody=file.asRequestBody("text/x-markdown; charset=utf-8".toMediaType()) val request = MultipartBody.Builder() .addFormDataPart("file", file.name,fileBody) .build() 复制代码
Java版本
import okhttp3.MediaType.Companion.*; import okhttp3.RequestBody.Companion.*; //String转RequestBody String、ByteArray、ByteString都可以用toRequestBody() MediaType mediaType=MediaType.Companion.parse("application/json;charset=utf-8"); RequestBody stringBody=RequestBody.Companion.create("body参数",mediaType); Request request=new Request .Builder() .post(stringBody) .build(); //File转RequestBody MediaType mediaType=MediaType.Companion.parse("text/x-markdown; charset=utf-8"); File file=new File(""); RequestBody fileBody=RequestBody.Companion.create(file,mediaType); Request request=new MultipartBody.Builder() .addFormDataPart("file", file.getName(),fileBody) .build();
作者:王阿觉
链接:https://juejin.cn/post/7031789764126867469