hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Quaroni...@invoke.com>
Subject Reading only the first X bytes of the response stream
Date Thu, 01 Sep 2016 16:10:20 GMT
I'm writing a utility that will retrieve some metadata about swf (flash)
files and I'd like to use httpclient to read the data but I want clarity on
the necessity to read the entire stream.

The information I need is all in the first few bytes of the file, and the
files could potentially be quite large so I don't want to read them in
their entirety.  I'd like to just read what I need and then close the
connection.

Here's a little test snippet, note that SWFInfo is closing the input stream
on the response entity:

    public static void main(String[] args) throws Exception {

        CloseableHttpClient client = buildCloseableClient();
        HttpGet get = new HttpGet("http://localhost/Cat.swf");
        for (int i = 0; i < 10000; i++) {
            try (CloseableHttpResponse response = client.execute(get)) {
                SWFInfo info =
SWFInfo.getInfo(response.getEntity().getContent());
                System.out.println(i + ": " + info.width + "," +
info.height);
            }
        }
    }


This test executes successfully, suggesting that it's OK but I want to
double check that I won't be causing any types of resource usage problems.
Note that we're using HttpClient in other parts of our application, but
those are pooled connections that are constructed differently.


Thanks,

Dan

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message