我有一个已发布的Android应用程序,它有一个HTTP音频下载过程。
此处理工作正常至今。
我的代码有什么问题?
final URL downloadFileUrl = new URL(mPerformanceSong.getPreviewUrl());
final HttpURLConnection httpURLConnection = (HttpURLConnection) downloadFileUrl.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoOutput(true);
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setReadTimeout(10000);
httpURLConnection.connect();
mTrackDownloadFile = new File(RecordPerformance.this.getCacheDir(), "mediafile");
mTrackDownloadFile.createNewFile();
final FileOutputStream fileOutputStream = new FileOutputStream(mTrackDownloadFile);
final byte buffer[] = new byte[16 * 1024];
final InputStream inputStream = httpURLConnection.getInputStream();
int len1 = 0;
while ((len1 = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, len1);
}
fileOutputStream.flush();
fileOutputStream.close();
下载文件的内容似乎是gzip。
这是否意味着我需要将我的inputStream包装在GZIPInputStream中?
示例下载网址是
http://www.amazon.com/gp/dmusic/get_sample_url.html?ASIN=B008TMSNMI
答案 0 :(得分:1)
我真的很惊讶它下载了什么 - 你确定是吗?
您发布的 http 网址:
http://www.amazon.com/gp/dmusic/get_sample_url.html?ASIN=B008TMSNMI
目前正在重定向到 https 云端地址:
https://d28julafmv4ekl.cloudfront.net/...
HttpUrlConnection
不会跟踪计划(即从http到https)的重定向。
因此,如果您将* .amazon.com网址更改为https,可能会解决您的问题......