android: сообщение retrofit2 дает ошибку, но успешно?

Я пытаюсь отправить элемент из своего приложения в свою базу данных с помощью сообщения. post ничего не возвращает, это пустота в веб-сервисе.

моя функция интерфейса службы

@POST("SaveDailyScan")
suspend fun save(@Body itemModel: ItemModel) : Call<ResponseBody>

Я пробовал это только с Call void, но на самом деле он не попадал в базу данных, поэтому я переключился на ResponseBody.

код, который его вызывает.

    CoroutineScope(Dispatchers.Default).launch {
        val call = service.saveDailyScan(itemModel)
    }

ошибка, которую я получаю,

E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-2
Process: com.r.test, PID: 7307
java.io.EOFException: End of input at line 1 column 1 path $
    at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1401)
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:549)
    at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:207)
    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:39)
    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:225)
    at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)

не совсем уверен, что с ним не так. Он вставляет его в мою базу данных прямо перед сбоем.


person mobwar    schedule 13.09.2019    source источник
comment
это ошибка синтаксического анализа ItemModel. как выглядит этот класс и как вы его создаете?   -  person TooManyEduardos    schedule 14.09.2019
comment
Что плохого в том, @POST("SaveDailyScan") suspend fun save(@Body itemModel: ItemModel): ResponseBody   -  person Dominic Fischer    schedule 15.09.2019
comment
@DominicFischer, по-видимому, ничего, я новичок в модификации 2, поэтому все, что я находил, казалось, требовало вызова «что-то»   -  person mobwar    schedule 16.09.2019
comment
Это был ответ тогда? Должен ли я дать правильный ответ, чтобы вы его приняли?   -  person Dominic Fischer    schedule 17.09.2019
comment
@DominicFischer, вы можете решить мою проблему.   -  person mobwar    schedule 18.09.2019


Ответы (1)


Для функций приостановки вам не нужно (нужно) использовать тип Call<...>. Так что просто ResponseBody будет достаточно, вот так.

@POST("SaveDailyScan")
suspend fun save(@Body itemModel: ItemModel): ResponseBody
person Dominic Fischer    schedule 19.09.2019