I have some Android code that can send files to my webserver using an HttpsUrlConnection, but when it tries to send larger files I get an OutOfMemory exception when opening the OutputStream. Can anyone offer some assistance?
It looks something like this: httpConn = (HttpsURLConnection) new URL(uri).openConnection(); httpConn.setDoInput(true); httpConn.setDoOutput(true); httpConn.setUseCaches(false); httpConn.setRequestMethod("POST"); This is where I try different things. The closes solution has been: httpConn.setChunkedStreamingMode(1024); In this case, I don't get the OutOfMemory immediately when opening the OutputStream, but I see the heap growing as I os.write() and it eventually runs out. httpConn.connect(); OutputStream os = httpConn.getOutputStream(); byte[] buffer = new byte[4096]; int len; while ((len = is.read(buffer)) != -1){ os.write(buffer, 0, len); } os.flush(); Each time I open the .getOutputStream() the contents of the file I am trying to send is loaded into memory, per the discussion here (http:// bugs.sun.com/bugdatabase/view_bug.do?bug_id=4212479) -- so I go out of memory. My server supports HTTP 1.1. I've tried the following code. 1. httpConn.setRequestProperty("Transfer-Encoding","chunked"); 2. httpConn.setChunkedStreamingMode(1024); 3. httpConn.setRequestProperty("Content-Length", length); 4. httpConn.setFixedLengthStreamingMode(1024) 5. Combo of 1+2. 6. Combo of 3+4 Can anyone offer any assistance?! It seems like no matter what, the data going to the OutputStream is being buffered. ChunkedStreamMode seems to just buffer it in pieces, whereas it would otherwise buffer it all at once. Both go out of memory. Thanks in advance. PS> I have similar code for J2ME and memory has not been a problem. Also, if I try to send two medium sized files in a row, the first one makes it, but then the heap doesn't seem to compact and the second one fails. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en