簡體   English   中英

httpurlConnection.getContentLength()返回-1

[英]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

感謝EJP

沒有錯。 我已經試過我的電腦了。 httpurlConnection.getContentLength()返回847。如果發出過多請求,則可能已超過最大連接數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM