当前位置: 首页 > 知识库问答 >
问题:

是否有一个字节大小的限制在一个响应体上使用改造?

卓麒
2023-03-14

我想知道Json响应体的字节大小是否会在改版时引起问题。

现在,我遇到了一个使用默认的OkHttp客户端的修改的回调的随机问题,在Http拦截器日志中,所有的事情都显示为OKK,但在代码中,它将调用视为失败并抛出一条简单的消息

java.net.SocketTimeoutException:超时详细信息消息:timeout

插座关闭。java.net.SocketException

不多不少。这些问题对我来说是死胡同,因为它们没有向我展示解决我的问题的可能办法,而且很可能给我指明了错误的方向。

这是我的分级实现

implementation "com.squareup.retrofit2:retrofit:2.5.0"
implementation "com.squareup.retrofit2:converter-gson:2.3.0"
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'

这是我如何构建我的客户机和改造

private fun buildRetrofit(): Retrofit {

    val logger = HttpLoggingInterceptor()
    logger.setLevel(HttpLoggingInterceptor.Level.BODY)

    val client = OkHttpClient()
        .newBuilder()
        .addInterceptor(logger)
        .build()

    return Retrofit.Builder()
        .baseUrl(FN.returnWebAPI(this))
        .client(client)
        .addConverterFactory(GsonConverterFactory.create())
        .build()

}

这就是我调用的方式,现在只是接收一个响应体,以确保它与数据解析无关。

val idGrupoComercios = hashMapOf("idGrupo" to id)
                val hashComercio = HashComercio(hash, upperU.usuario.toUpperCase(Locale.getDefault()), "", jwt.toString(), idGrupoComercios
                )
            val callComercios: Call<ResponseBody> =
                service.getComercios(tokenBearer, hashComercio)

            callComercios.enqueue(object :
                Callback<ResponseBody> {
                override fun onFailure(
                    call: Call<ResponseBody>,
                    t: Throwable
                ) {
                    Crashlytics.logException(t)

                }

                override fun onResponse(
                    call: Call<ResponseBody>,
                    response: Response<ResponseBody>
                ) {
                    if (response.code() == 200) {
                       val data = response.body()!!

                }

            })

-----我的HttLogger拦截器

D/OkHttp: --> POST http://192.168.1.68:83/api/Comercios/comercios D/OkHttp: Content-Type: application/json; charset=UTF-8 D/OkHttp:

内容-长度:418D/OKHTTP:授权:承载

D/OkHttp: {"anyObjects":{"idGrupo":"00d60025-6fb9-484f-97f0-08d79dfdbf92"},"cultura":"","hash":"BDZ5GA","token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfVXNlck5hbWUiOiJVU0VSX0JPTkFOWkExIiwiX0hhc2giOiJCRFo1R0EiLCJqdGkiOiI0NmI0MTA0NC03M2M2LTQ5MDEtOTcyMy0yZjE1NjE1ODgzZDgiLCJleHAiOjE1ODE0ODAzMjMsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODMiLCJhdWQiOiJNeVRlc3RBcGkifQ.EgVFlAzqOlV-RpjRRxXpQzp3q3kk1FqTcoaGDQBY0XA","usuario":"USER_BONANZA1"}

D/OkHttp: --> END POST (418-byte body)

D/OkHttp: <-- 200 OK http://192.168.1.68:83/api/Comercios/comercios (34ms)

D/OkHttp: Transfer-Encoding: chunked

D/OkHttp: Content-Type: application/json; charset=utf-8

D/OkHttp: Server: Kestrel

D/OkHttp: X-Powered-By: ASP.NET

D/OkHttp: Date: Wed, 12 Feb 2020 01:05:45 GMT

我希望这是任何帮助,如果你能给我的任何建议,它将被采取,也如果有人能告诉我如何看到客户的内部工作,我如何能看到错误更准确,我将非常感谢。我想要更多的信息和这个问题似乎不是很清楚,我相信可以从应用程序方面做一些事情。

共有1个答案

关浩壤
2023-03-14

不是真的。如果响应体字节大小有问题,改头换面会告诉你。但对于3G网络和某些网络,如果您的响应体超过1024字节或包含的has值可能会增加重建响应所需的时间,则您可能会在修改时出现问题。

 类似资料:
  • 我正在使用Spring WebFlux编写http爬虫程序,它很容易并行执行和设置http超时: 但是如何限制页面响应大小,比如我不想为每个URL下载超过500KB的数据。读取HTTP头Content-Length是不可靠的。我想我需要降低一个级别,直接使用字节缓冲区和Netty事件,但最好使用flux/mono来包装它,以继续使用这些原语

  • 本文向大家介绍有一个1G大小的文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,返回频数最高的100个词?相关面试题,主要包含被问及有一个1G大小的文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,返回频数最高的100个词?时的应答技巧和注意事项,需要的朋友参考一下 利用hash映射,将数据映射到小文件中,取1000为例,然后在各个小文件中进行hashmap

  • 问题内容: 我的Node.js应用程序的一部分涉及从用户接收字符串作为输入并将其存储在JSON文件中。JSON本身显然对此没有限制,但是Node可以处理成JSON的文本量是否有上限? 请注意,我 并未 在实际插入中使用MongoDB或任何其他技术-这是本机字符串化,并使用将其保存到.json文件。 问题答案: V8(JavaScript引擎节点在建),直到 非常 最近有一个关于1.9 GB的堆大小

  • 我正在使用一个电子邮件客户端,它将连接到Gmail邮箱并检索特定的电子邮件。 现在,我可以连接到我的邮箱,并可以检索部分电子邮件,而不是全部,无论我的缓冲区有多大,我仍然只能从我的电子邮件中获得1400个字符,然后其余的邮件主体为空。 您可以在此链接中找到电子邮件正文的屏幕截图 http://www.elzouhery.com/Mail 快照.png 提前感谢 编辑 请参阅下面的完整代码

  • 因此,为了遵守职责分离原则,我尝试让我的修改方法(listNearestAirports)将列表返回给演示者(在不同的包中)。但我注意到,这在改型时很难做到,从必须在我的方法范围之外声明列表,到我只能在onResponse方法内迭代列表(当我试图返回列表时,我得到一个空指针异常)。请参阅下面的代码: 我想要向main()返回一个列表,因此可以执行以下操作: 什么是最简单的方法来返回来自改装的响应?

  • 问题内容: 我四处搜索,据我所知,POST表单请求已经限制为10MB(http://golang.org/src/net/http/request.go#L721)。 如果要减少这种方法的使用量,则不确定如何正确执行此操作。我会尝试这样的事情: 但是错误返回是否也会关闭连接?我如何避免必须阅读所有内容?我发现了这一点,但是如果未设置内容长度,并且在阅读过程中我意识到文件太大,该怎么办。 我将此用作