开发者社区 > 云原生 > Serverless > 正文

阿里云Serverless 中 FC 3 读取response body 的时候报错该怎么解决?

阿里云Serverless 中 FC 3 读取response body 的时候报错该怎么解决?Caused by: java.io.IOException: closed
at okio.RealBufferedSource$inputStream$1.read(RealBufferedSource.kt:154) ~[okio-jvm-3.0.0.jar:na]
at java.base/java.io.InputStream.read(InputStream.java:218) ~[na:na]
at com.aliyun.teautil.Common.readAsBytes(Common.java:188) ~[tea-util-0.2.21.jar:na]
... 73 common frames omitted

展开
收起
小小鹿鹿鹿 2023-11-13 18:45:35 79 0
2 条回答
写回答
取消 提交回答
  • 依赖的问题,更新一下这个版本

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-openapi</artifactId>
            <version>0.3.1</version>
        </dependency>
    
    2023-12-19 20:09:55
    赞同 展开评论 打赏
  • 这个错误提示"Caused by: java.io.IOException: closed"表示你正在尝试从一个已经关闭的流中读取数据。这可能是由于你的代码在处理完响应后没有正确地关闭流导致的。

    在OkHttp中,当你调用Response.body().source().close()时,会关闭响应体源,之后就不能再从这个源中读取数据了。如果你在关闭源后仍然尝试读取数据,就会抛出这个异常。

    解决这个问题的方法是在处理完响应后正确地关闭流。你可以修改你的代码,确保在调用Response.body().source().close()后不再尝试从源中读取数据。

    2023-11-30 15:46:52
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载