Okhttp3 - RequestBody.create(contentType, content) Deprecated Okhttp3 - RequestBody.create(contentType, content) Deprecated java java

Okhttp3 - RequestBody.create(contentType, content) Deprecated


Java Solution:Use create(String, MediaType) instead of create(MediaType, String) for example

Kotlin Solution:Use the extension function content.toRequestBody(contentType);for the File type file.asRequestBody(contentType)

Note:I'm using kotlin, but my IDE just doesn't automatically import the class or method like import okhttp3.RequestBody.Companion.toRequestBody, so I import it manually...then use it as the example given by Saeed Younus and Pratyesh below

For more: The documentation

(In Android Studio or any Jetbrain's IDE, the solution to the deprecated methods or class can be found by just holding the Ctrl and clicking on the create(...) of RequestBody.create)


In com.squareup.okhttp3:okhttp:4.1.0

MediaType.get("application/json; charset=utf-8") no more available.

instead this we need to use "application/json; charset=utf-8".toMediaTypeOrNull().

For example how we need to create request body now since okhttp:4.1.0

import okhttp3.MediaType.Companion.toMediaTypeOrNullimport okhttp3.RequestBody.Companion.toRequestBody    val jsonObject = JSONObject()        jsonObject.put("name", "Ancd test")        jsonObject.put("city", "delhi")        jsonObject.put("age", "23")    val body = jsonObject.toString().toRequestBody("application/json; charset=utf-8".toMediaTypeOrNull())

To those wondering where the answers are coming from!

All the alternatives/solutions(as described by the answer) are documented in the corresponding deprecated code! Just manoeuvre to it (the deprecated code) using whichever means your IDE supports. For example, to see the alternative/solution to the deprecated code RequestBody.create(...,...) when using AndroidStudio or any Jetbrain's IDE, just long-press Ctrl and hover over the RequestBody.create(...,...) then click on it when it's hovered over successfully


You need to import these files manually may be this is a bug in android studio. It is not suggested but this is work for Okhttp 4.2.2

import okhttp3.MediaType.Companion.toMediaTypeOrNullimport okhttp3.RequestBody.Companion.asRequestBody

and use as

val file = File("path")file.asRequestBody("image/jpeg".toMediaTypeOrNull())