gpt4 book ai didi

java - 在 Java 中获取 HTTP 响应的大小

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:35 24 4
gpt4 key购买 nike

我想知道响应某个 http 请求发送了多少数据。我目前所做的是:

   HttpURLConnection con = (HttpURLConnection) feedurl.openConnection();

//检查内容大小的响应 int feedsize = con.getContentLength();

问题是,并不总是设置 content-legnth。例如。当服务器使用 transfer-encoding=chunked 时,我得到一个值 -1。

不需要需要这个来显示进度信息。我只需要知道完成后发送给我的数据的大小。

背景:我需要此信息,因为我想将它与使用 gzip 编码发送的响应的大小进行比较。

最佳答案

我会使用 commons-io CountingInputStream ,这将为您完成这项工作。一个完整但简单的例子:

public long countContent(URL feedurl) {
CountingInputStream counter = null;
try {
HttpURLConnection con = (HttpURLConnection) feedurl.openConnection();
counter = new CountingInputStream(con.getInputStream());
String output = IOUtils.toString(counter);
return counter.getByteCount();
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
IOUtils.closeQuietly(counter);
}
}

关于java - 在 Java 中获取 HTTP 响应的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674129/

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