Android OkHttp4 RequestBody.create()过时解决办法 kotlin、java版本

2023-11-18

前段时间,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()

  
  
  
  
  • 1
  • 2
  • 3
  • 4

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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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();

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android OkHttp4 RequestBody.create()过时解决办法 kotlin、java版本 的相关文章

  • minHeight 有什么作用吗?

    在附图中 我希望按钮列与图像的高度相匹配 但我也希望按钮列有一个最小高度 它正确匹配图像的高度 但不遵守 minHeight 并且会使按钮向下滑动 我正在为按钮列设置这些属性
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • 带有自定义阵列适配器的微调器不允许选择项目

    我使用自定义阵列适配器作为微调器 但是 当在下拉列表中选择一个项目时 下拉列表保留在那里 并且微调器不会更新 这是错误行为 与使用带有字符串的通用数组适配器相比 这是自定义类 我错过了什么吗 谢谢 public class Calendar
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp

随机推荐

  • Java应用程序浏览器集成控件JxBrowser v7.18新版发布!

    JxBrowser是将基于Chromium的浏览器与Java应用程序集成 以处理和显示HTML5 CSS3 JavaScript Flash等 近日 JxBrowser v7 18发布啦 在此版本中 支持带有 Apple Silicon M
  • 分解质因数、求因子数和因子和(唯一分解定理)

    唯一分解定理 又称算术基本定理 可以描述为 任意一个大于1的正整数都能表示成若干个质数的乘积 且表示的方法是唯一的 换句话说 一个数能被唯一地分解成质因数的乘积 公式 因子数
  • 难懂?这样理解SPI与CAN很简单!

    难懂 这样理解SPI与CAN很简单 什么是串行通讯 为什么仍需使用串行通讯 SPI与CAN SPI 接口特点 CAN现场总线特点 什么是串行通讯 在正式进入主题前 我么先来介绍一下什么叫做 串行通信 串行通信是计算机的一种数据传输通信方式
  • Base64 编码整理

    前面整理了websocket的知识 其中有一个base64编码的小知识 今天就对这个小知识进行一下整理 1 Base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法 因为只有64种字符 使用6位就可表示过来 所以bas
  • 学习设计模式的一点心得

    我 是一个刚开始学习设计模式的小学生 开始学习设计模式是因为在之前的一家公司 做一个rpg游戏 但是我们又是小公司 没办法 很多都要我这个新手来做 连一些模块的架构都要做 但是能力在那里 工作越做越乱 对于一个没接触过设计模式的人来说 根本
  • Kafka剖析(一):Kafka背景及架构介绍

    转载自 http www infoq com cn articles kafka analysis part 1 Kafka 是由 LinkedIn 开发的一个分布式的消息系统 使用 Scala 编写 它以可水平扩展和高吞吐率而被广泛使用
  • 计网第四章(网络层)(三)(定长掩码和变长掩码)

    IPV4地址的应用规划 定长的子网掩码FLSM 使用同一个子网掩码划分子网 每个子网所分配的IP地址数量相同 造成IP地址的浪费 变长的子网掩码VLSM 使用不同的子网掩码划分子网 每个子网所分配的IP地址数量可以不相同 尽可能地减少对IP
  • 巨人互动

    Facebook是全球最大的社交媒体平台之一 每天有数十亿的用户在其上发布 分享和交流各种内容 为了维护平台的安全性和用户体验 Facebook制定了严格的风控规则来监测和处理违规行为 下面小编讲讲Facebook风控规则 巨人互动 Goo
  • Graphviz 安装教程

    下载安装 windows版本下载地址 http www graphviz org Download windows php 选择需要的版本就行了 安装时勾选下面方框中的选项 将路径添加到系统路径中 这一步不选的话就需要人为添加路径 配置环境
  • CSS实现渐变色边框(Gradient borders)的5种方法

    1 使用border image CSS 提供了 border image 属性用于给 border 绘制复杂图样 与 background image 类似 我们可以在 border 中展示image和linear gradient 通过
  • c++STL常用容器之Queue容器——全面总结(附案例解析)(十五)

    这里有C STL 全面总结详细教程 附案例解析 持续更新中 目录 queue 容器 queue 基本概念 queue 常用接口
  • php 访问 HTTP 网址

    1 只需获取状态码 判断网址是否正常打开 url https www baidu com array get headers url 1 print r array 判断是否正常打开 url https www baidu com arra
  • SpringBoot项目整合JPA+QueryDSL,及apt-maven-plugin报错问题解决

    闲暇之余项搞个JPA的Demo 采用的是SpringBoot JPA QueryDSL 开发工具为Eclipse JPA官网 https spring io projects spring data jpa QueryDSL官网 http
  • Specified class is an interface

    错误 在springboot 启动时候出现该错误 表示有重复的mapper 而且两个mapper 都加了 Mapper注解 或者在mybatis的配置文件中配置了 所以会导致 混乱 解决方法 根据报错提示找到多余的mapper 进行统一化处
  • Jedis之Java操作redis实现模拟验证码发送操作

    import cn hutool core util RandomUtil import redis clients jedis Jedis import java util Scanner author oliverloki Descri
  • keil找不到device,怎么办?

    下载好的keil 准备调试程序 却发现这个问题 找不到我需要的芯片啊啊啊 头大 后面发现是缺少相应的pack 安装keil时 好像没有自动装上STM32系列芯片 所以得需要自己安装 百度一下 找一些资源 然后 把途中红色框住的 分别放在安装
  • 对字符串进行正则取子串

    题目是这样的 对一段HTML网页内容 解析出其中所有的键值对 比如其中type text type为属性 text为值 二者为一个键值对 内容如下
  • Day4-1 反射、可变变量、线程池和Tomcat调优

    反射 Class的三种获取方式 方式一 通过Class forName获取 Class cla1 Class forName lt 类名 gt 方式二 通过类属性 lt 类名 gt class获取 Class cla2 lt 类名 gt c
  • uniapp本地插件列表为空的问题

    在开发中 我遇到本地插件列表为空的问题 问题来源 当我们在打包时不想选择本地的某个插件 但是 但是删除 再去选择 你会发现 来列表为空 也不会报错 解决方案 1 我们删除造成问题后的导入原生插件 然后重新导入 我就是这样解决的 可能你改原生
  • Android OkHttp4 RequestBody.create()过时解决办法 kotlin、java版本

    前段时间 OKhttp3已升级到Okhttp4 编写语言由java过渡到kotlin 而以前okhttp3经常用到的post提交数据的 RequestBody create 已过时 并且换成了kotlin的新特性写法 okhttp3 pos