Raw JSON body in Retrofit
/ 1 min read
Table of Contents
Raw JSON body in Retrofit
To send a raw JSON body in String format in Retrofit, I found out I need to include scalar library.
scalar = { module = "com.squareup.retrofit2:converter-scalars", version.ref = "retrofit" }In my ApiHelper class.
import retrofit2.converter.scalars.ScalarsConverterFactory
object ApiHelper { fun getInstance(): Retrofit = Retrofit .Builder() .baseUrl(baseApi) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory( json.asConverterFactory(contentType), ) .client(client) .build()}Important stuff to take note is that, ScalarsConverterFactory.create() needs to be called first before the convert factory, or else it won’t work.
So, sending a raw @Body should now work.
@PATCH("profile")suspend fun updateUserProfile( @Header("Authorization") accessToken: String, @Body body: String): Response<Unit>