Я пытаюсь выполнить POST
запрос с Retrofit
, который на самом деле работает нормально, но никогда не выполняет OnResponse
функцию.Дело в том, что с GET
работает нормально, но не с POST
запросом.
Я пытался изменить код состояния запроса с 201
на 200
, но не работал.Вместо Toast
в OnResponse
я пытался вызвать другую функцию, пытался связать значение body? .It и т. Д., Но ничего из этого не работает, даже в режиме отладки ... Так что я думаю, что OnResponse
никогда не выполнялся,OnFailure
тоже никогда не выполняется.
Инициализатор:
private val retrofit = Retrofit.Builder()
.baseUrl("http://myserverurl.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build()
fun orderService () = retrofit.create(OrderService ::class.java)
OrderService.kt
interface OrderService {
@POST("pedido")
fun insert(@Body order: OrderEntity, @Header("mykey") myKey:String) : Call<OrderEntity>
}
Вызов:
val call = RetrofitInitializer().orderService().insert(order, mMyKey)
call.enqueue(object : Callback<OrderEntity> {
override fun onResponse(call: Call<OrderEntity>?,
response: Response<OrderEntity>?) {
response?.body()?.let {
Toast.makeText(mContext, "It works!", Toast.LENGTH_LONG).show()
}
}
override fun onFailure(call: Call<OrderEntity>?, t: Throwable?) {
Log.e("onFailure error", t?.message)
}
})
Итак,помня, что запрос работает, он сохраняет данные на сервере API, просто не возвращается к OnResponse
, поэтому я не могу знать, завершился ли он уже или нет в моем приложении.