gpt4 book ai didi

android - OkHttp 和 Retrofit 抛出 IO : Stream 3 not progressing

转载 作者:行者123 更新时间:2023-11-29 02:20:08 25 4
gpt4 key购买 nike

我的 Charles 代理中出现“IO:Stream 3 未进行”。

我有一个简单的 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'

与 Charles 检查时,应用程序第一次总是说“IO Stream 3 未进行”,但应用程序会自动再次调用,第二次运行正常。我还没有编写任何代码来重试 API 调用。使用 Postman 进行相同的尝试时,它会立即起作用。所以这不是后端。我尝试模仿 Postman 的 header ,我也尝试不使用 RxJava,没有区别。

enter image description here第二次工作正常: enter image description here

当连接调试器时,错误信息是:

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

看来服务器的响应是错误的,但是第二次对象是正确的。

最佳答案

我遇到了类似的问题。 Okhttp 默默地执行此操作,它会尝试默认路由,如果它像您的情况一样失败,它会尝试每个示例的不同路由。

在我的案例中,ipv6 出现了问题,失败了,第二次重试时使用的是 ipv4,并且成功了。

从日志中我无法说出如何修复它,但我会调试来自 Okhttp 的 RetryAndFollowUpInterceptor并找出有关哪条路线失败和哪条路线成功的更多详细信息。

关于android - OkHttp 和 Retrofit 抛出 IO : Stream 3 not progressing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56699489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com