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

11 篇文章 0 订阅
1 篇文章 0 订阅

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

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

  • 23
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值