gpt4 book ai didi

java - 如何从使用 ThreadSafeClientConnManager 的连接的响应中获取分块的页脚?

转载 作者:行者123 更新时间:2023-12-04 06:20:42 24 4
gpt4 key购买 nike

我正在使用由 ThreadSafeClientConnManager (Apache httpcomponents 4.1.1) 创建的连接。响应是分块的(我期望),这是由 response.getEntity().isChunked() 决定的

但是,无法获得页脚/预告片(这是我们的应用程序所必需的)。由于响应是分块的,我希望实体内容是 ChunkedInputStream 类型,但是客户端使用的默认请求导向器和执行器类包装原始响应实体(从 httpcomponents 源来看,它本来是一个 ChunkedInputStream)在 BasicManagedEntity 中。

简而言之,我不再能够从响应中获取页脚/预告片,因为 BasicManagedEntity 不会使底层实体可供使用。有谁知道如何解决这个问题?

引用:

  • org.apache.http.impl.client.DefaultRequestDirector.java,第 523-525 行
  • org.apache.http.impl.entity.EntityDeserializer.java,第 93-96 行
  • 最佳答案

    可以使用 HTTP 响应拦截器来访问分块内容流和响应页脚。

    httpclient.addResponseInterceptor(new HttpResponseInterceptor() {

    public void process(
    final HttpResponse response,
    final HttpContext context) throws HttpException, IOException {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
    InputStream instream = entity.getContent();
    if (instream instanceof ChunkedInputStream) {
    Header[] footers = ((ChunkedInputStream) instream).getFooters();
    }
    }
    }

    });

    关于java - 如何从使用 ThreadSafeClientConnManager 的连接的响应中获取分块的页脚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615645/

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