前段时间,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=utf-8"),"body参数")).build()

okhttp4 post最新请求的代码:

kotlin版本:

import okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBodyimport 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转RequestBodyval 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转RequestBodyMediaType 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();

这就是okhttp4.0最新post带参数请求的代码,虽然官方专门出了升级指南但是可能由于编译器不是最新的版本,在使用toRequestBody()的时候,编译器一直不提示引入包,所以折腾了很长时间。
如果编译器不提示引入包,记得自己手动加上就可以了

更多相关文章

  1. 【Android(安卓)Developers Training】 13. 支持不同平台版本
  2. android 编译碰到的问题及解决办法:(ubuntu下编译)
  3. ReactNative打包发布流程、自动化上传第三方测试平台
  4. Android之 VersionCode,VersionName(1)版本号和版本名称的重要性介
  5. Android(安卓)日记之二 pendingIntent简单理解
  6. Android(安卓)Studio3.0 Kotlin工程问题集
  7. ARCore1.2使用入门(一) ------ 将ARCore案例打包成Android/iOS运行
  8. android Nexus Maven私有仓库搭建
  9. Android(安卓)Studio 3.x.x降低compileSdkVersion的SDK版本

随机推荐

  1. Android——Service
  2. Android(安卓)-- 利用ContentProvider 读
  3. android 调研web services
  4. [译]Android架构组件 – 查看Room和LiveD
  5. Android(安卓)Studio 2.3使用CMake方式ND
  6. BroadcastReceiver与自定义权限
  7. Android添加新的视频格式--媒体库扫描
  8. Android设置锁屏/休眠时长
  9. android studio 首次安装配置和 gradle
  10. Android(安卓)wifi 连接设备的步骤