Я получаю "IO: Поток 3 не выполняется" в моем прокси-сервере Charles.
У меня есть простой вызов RxJava:
subscription.add(api.sendSources(sendDataBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
callback.onFinished(it)
}, {
callback.onError(-1)
}))
Простой POJO:
data class SendDataBody(
@Json(name = "authtoken")
var authToken: String,
) : Serializable
open class SendDataResponse(
@Json(name = "success")
var success: Boolean,
@Json(name = "error")
var error: String?
)
Вот мой интерфейс:
@Headers(
"Content-Type: application/json; charset=UTF-8",
"accept-encoding: gzip, deflate",
"Accept: */*",
"Cache-Control: no-cache"
)
@POST("sourcedata")
fun sendSources(@Body sendDataBody: SendDataBody) : Single<Any>
ЗдесьВот версии библиотеки:
// Retrofit
implementation "com.squareup.retrofit2:retrofit:2.3.0"
implementation "com.squareup.retrofit2:converter-moshi:2.3.0"
implementation "com.squareup.okhttp3:logging-interceptor:3.9.0"
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
// RxJava lib
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "io.reactivex.rxjava2:rxjava:2.2.6"
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
При проверке с Чарльзом приложение впервые всегда говорит «IO Stream 3 не выполняется», но приложение автоматически выполняет вызов снова, а во второй раз все работает нормально.Я не написал никакого кода, чтобы повторить вызов API.При попытке попробовать то же самое с помощью Postman, это работает сразуТак что это не бэк-энд.Я пытался подражать заголовкам Почтальона, и я также пытался без RxJava, без разницы.
Второй раз работает отлично:
При соединении с отладчиком появляется сообщение об ошибке:
result = {Response@7889} "Response{protocol=h2, code=200, message=, url=https://api.myserver.nl/sourcedata}"
body = "�\b�������������V*.MNN-.V�JK�)N�QJ-*�"
errorBody = null
Кажется, что ответ от сервера неправильный, но во второй раз объект правильный.