Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

URLConnection returning empty inputStream

I am trying to fetch input stream pdf from URL Connection but I am getting an empty input stream. Can anyone please tell me what is I am doing wrong? Following is the code:

<!-- language: java -->

URL fileUrl = new URL("https://www.dropbox.com/s/ao3up7xudju4qm0/Amalgabond%20Adhesive%20Agent.pdf");
HttpURLConnection connection = (HttpURLConnection)fileUrl.openConnection();
connection.connect(); 
InputStream is = connection.getInputStream();
Log.i("TAG", "is.available(): " + is.available());

is.available() is returning 0 empty stream.

like image 651
Mustansar Saeed Avatar asked Mar 08 '26 03:03

Mustansar Saeed


1 Answers

According to the javadoc, available() does not block and wait until all data is available, so you might have not completely received your stuff when its called.

You should use something like this instead of available() :

int bytesRead;
byte[] buffer = new byte[100000];

while((bytesRead = is.read(buffer)) > 0){

    // Do something here with buffer
}

read() is a blocking method.

like image 199
slaadvak Avatar answered Mar 09 '26 15:03

slaadvak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!