I have 500 internal server error, every time when I try to send POST request via Retrofit. When I sending GET request is working for me. Below code is in kotlin.
Code
val token = (activity as MainActivity).stockService.status.getTocken()
val client =
OkHttpClient.Builder().addInterceptor { chain ->
val newRequest: Request = chain.request().newBuilder()
.addHeader("Authorization", "Bearer $token")
.addHeader("Content-Type", "application/json")
.build()
chain.proceed(newRequest)
}.build()
val gson = GsonBuilder()
.setLenient()
.create()
val retrofit: Retrofit = Retrofit.Builder()
.client(client)
.baseUrl("https://example.com")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
val service = retrofit.create(RestClient::class.java)
val paramObject = JSONObject()
paramObject.put("disclosed_quantity", 0)
paramObject.put("exchange", "abd")
paramObject.put("instrument_token", 3045)
paramObject.put("order_tag", "test_order")
paramObject.put("order_type", "CHECK")
val call = service.createUser(paramObject.toString())
call.enqueue(object : Callback<Any> {
override fun onFailure(call: Call<Any>, t: Throwable) {
Toast.makeText(activity, "Failed :$t", Toast.LENGTH_SHORT).show()
}
override fun onResponse(call: Call<Any>, response: Response<Any>) {
Toast.makeText(
activity,
"Sucess ${response.body()},${response.code()}, ${response.errorBody()}",
Toast.LENGTH_SHORT
).show()
}
})
RestClient
interface RestClient {
@POST("/api/v2/order")
fun createUser(@Body order: String): Call<Any> }
But when I try POST in the POSTMAN is working fine. I get response correctly I don't know where I am doing wrong.
Thank you in advance