[英]httpurlConnection.getContentLength() return -1
我想使用以下IP從互聯網下載圖片: http : //redsonic.skyf.ir/testdownload.jpg
但是我的httpurlConnection.getContentLength()
返回-1。
這是我的代碼:
URL url = new URL(downloadPath);
HttpURLConnection httpConnection =(HttpURLConnection) url.openConnection();
httpConnection.setRequestMethod("GET");
httpConnection.setDoOutput(true);
httpConnection.connect();
File file = new File(filePath);
OutputStream outputStream = new FileOutputStream(file);
InputStream inputStream = httpConnection.getInputStream();
byte[] buffer = new byte[8*1024];
int len=0;
int downloadsize = 0;
int filesize = httpConnection.getContentLength();
while ((len=inputStream.read(buffer))>0)
{
outputStream.write(buffer,0,len);
downloadsize += len;
float persent = (float) downloadsize/filesize;
Log.i("***","downloadsize="+downloadsize + " filesize="+filesize+" percent = "+persent);
}
//outputStream.flush();
outputStream.close();
但是,當我從互聯網上下載其他圖片時,它可以工作。
這怎么可能?
只需刪除以下行: httpConnection.setDoOutput(true);
或設置為false
沒有錯。 我已經試過我的電腦了。 httpurlConnection.getContentLength()返回847。如果發出過多請求,則可能已超過最大連接數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.