Запрос на модернизацию POST никогда не возвращается к OnResponse - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь выполнить 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, поэтому я не могу знать, завершился ли он уже или нет в моем приложении.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Простите, ребята.Я нашел проблему.Он возвращался к OnResponse, но с кодом 500. Возникла проблема с одним из полей в моем API, который не отображался в PostMan .. Так что, спасибо, ребята!

0 голосов
/ 29 января 2019

вы установили okHttp клиент для соединения HTTP / 2?

private val retrofit = Retrofit.Builder()
    .baseUrl("http://myserverurl.com/api/")
    .addConverterFactory(GsonConverterFactory.create())
    .client(okhttpClient)
    .build()

private val okhttpClient = new OkHttpClient();
...