我的文件大小为5MB,并希望通过HttpURLConnection下载(目标就像“ http://...../songs/Beatles_And I Love Her.mp3”)。

我正在尝试如下

URL url = new URL("http://........../songs/Beatles_And I Love Her.mp3");

URLConnection urlConnection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection)urlConnection;

httpURLConnection.getResponseCode();
InputStream stream = httpURLConnection.getInputStream();

byte buf[] = new byte[128];
do
{
    int numread = stream.read(buf);
    if (numread <= 0)
    {
        stream.close();
        break;
    }
} while (true);


但是问题在于它只读取2KB到3KB的数据,然后返回-1并退出。

最佳答案

检查响应代码(应为200)并检查所获取数据的内容。

艾夫也有类似的问题。原来是我读取的服务器上的错误页面,而不是正确的文件:-)

另外,尝试使用不包含空格的文件(在服务器上重命名为Beatles_And_I_Love_Her.mp3)

关于android - HttpURLConnection读取输入流失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7592153/

10-12 06:14