【问题】
已经获得了Songtaste中歌曲的地址,比如:
http://www.songtaste.com/song/3208674/
中的真实下载地址是:
然后现在想要去下载这样的文件到Android手机的本地某个文件夹中。
【解决过程】
1.其中,关于自动处理Cookie方面的折腾,详见:
【已解决】Android中的HttClient处理过程中,如何自动处理Cookie:发送Cookie,获得返回的Cookie,合并新旧的Cookie
2.参考:
Android download binary file problems
去写代码:
public Boolean downlodFile(String url, String fullFilename, HttpParams headerParams)
{
Boolean downloadOk = Boolean.FALSE;
HttpResponse response = getUrlResponse(url, headerParams, null);
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
HttpEntity respEnt = response.getEntity();
System.out.println("isChunked" + respEnt.isChunked());
System.out.println("Streaming" + respEnt.isStreaming());
Boolean isStream = respEnt.isStreaming();
if(isStream)
{
try {
InputStream fileInStream = respEnt.getContent();
FileOutputStream fileOutStream = new FileOutputStream(new File(fullFilename));
byte[] tmpBuf = new byte[1024];
int tmpLen = 0;
while ( (tmpLen = fileInStream.read(tmpBuf)) > 0 ) {
fileOutStream.write(tmpBuf,0, tmpLen);
}
downloadOk = Boolean.TRUE;
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return downloadOk;
}最后是可以去获得对应的response,但是结果去创建文件时,出错“java.io.FileNotFoundException: /downloadedMusic.mp3: open failed: EROFS (Read-only file system)”,详细折腾参见:
【已解决】Android中的文件存储位置:java.io.FileNotFoundException: xxx: open failed: EROFS (Read-only file system)
3.有待后续。