BUG记录-java发起http请求返回数据不全-org.apache.http.TruncatedChunkException

23 篇文章 0 订阅

项目是Spring-boot的,两个项目(A和B) , A调用B

报错信息:

org.apache.http.TruncatedChunkException: Truncated chunk ( expected size: 720896; actual size: 318730)

  • 接口表现出来的是数据传输不完整,丢包, 接口返回 json , 接收到的数据可能会少一截,偶尔为空,json 数据说不定会少个 } ,然后反序列化失败。
  • 使用Postman请求,数据正常,但是返回慢,猜测数据量太大返回时请求未完成,所以设置下CloseableHttpClient 超时时间

代码修改

原来的:

    private static String doHttp(HttpRequestBase request) throws Exception {
        // 通过连接池获取连接对象
        CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();

        return doRequest(httpClient, request);
    }

更改后:

    /**
     * 发送 HTTP 请求
     *
     * @param request
     * @return
     * @throws Exception
     */
    private static String doHttp(HttpRequestBase request) throws Exception {
        // 通过连接池获取连接对象
        CloseableHttpClient httpClient = HttpClients.custom()
                .setConnectionManager(cm)
                .setConnectionTimeToLive(5, TimeUnit.SECONDS) // 连接存活时间
//                .setConnectTimeout(1000) //连接超时时间
//                .setConnectionRequestTimeout(1000) //从连接池中取的连接的最长时间
//                .setSocketTimeout(10 * 1000) //数据传输的超时时间
//                .setStaleConnectionCheckEnabled(true) //提交请求前测试连接是否可用

                .build();

        return doRequest(httpClient, request);
    }

再次运行,成功解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑶山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值