it's 2GB of data, why dont u just read the stream into smaller buffer & write it immediately back to the client (with a loop until the end of stream )?
call toByteArray() will full your memory up hth On Sun, Feb 13, 2011 at 4:48 PM, Robyp1 <[email protected]> wrote: > > hi, > > i have a problem.. I try to read from a web server that stream video and > audio content media : flv type > i make http request using HttpGet class from org.apache.http.client.methods > to this server url like this : > > HttpGet get = new HttpGet(url) > HttpResponse response = myHttpClientObject.execute(get); > > but when i try to read content in a buffer like this: > > entity = response.getEntity(); > if (entity != null) { > InputStream instream = entity.getContent(); > > System.out.println("**Entity content-length " + entity.getContentLength()); > //it is 2147483647! > > byte[] b = EntityUtils.toByteArray(entity); <-- using this utility with a > dinamic resizing array of bytes > > i get a > **Entity content-length 2147483647 > Exception in thread "pool-1-thread-3" java.lang.OutOfMemoryError: Java heap > space > java.lang.OutOfMemoryError: Java heap space > at org.apache.http.util.ByteArrayBuffer.<init>(ByteArrayBuffer.java:55) > at org.apache.http.util.EntityUtils.toByteArray(EntityUtils.java:96) > > beacuse the constructor of ByteArrayBuffer creat a new byte[2147483647] > array > > what is wrong..i suppose that because my resource is not static i must use > a > chunk mode, really?? but how i can use it with HttpGet??.. i think HttpPot > is not supported by server beacuse > i get a http page with a forbidden message(you're not authorized). But > using > a HttpGet and read by a inputStreamer (not the right choice with 8 bit > content type) i get > the streaming source: > > //StringBuffer httpResponse = new StringBuffer(); > // input = new BufferedReader(new InputStreamReader(instream)); > // String resp = "null"; > // while (resp != null && !(resp).equals("")) { > // log.log(Level.INFO, resp); > // resp = input.readLine(); > // httpResponse.append(resp); > // } > > I have to get this output and send it to a vlc player or any kind of flv > stream player .. > > thank you > > Bye > Roby > -- > View this message in context: > http://old.nabble.com/anaging-streaming-http-connection-tp30915038p30915038.html > Sent from the HttpClient-User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
