以下是基于HttpUrlConnection
类的Android文件下载的实例代码的详细攻略:
- 首先,创建一个异步任务类,用于在后台线程执行文件下载操作。在
doInBackground()
方法中,使用HttpUrlConnection
建立与服务器的连接,并设置请求方法为GET。
private class DownloadTask extends AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
String fileUrl = params[0];
String savePath = params[1];
try {
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(\"GET\");
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
int fileLength = connection.getContentLength();
InputStream input = connection.getInputStream();
OutputStream output = new FileOutputStream(savePath);
byte[] buffer = new byte[4096];
int bytesRead;
long totalBytesRead = 0;
while ((bytesRead = input.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
totalBytesRead += bytesRead;
// 计算下载进度并更新UI
int progress = (int) (totalBytesRead * 100 / fileLength);
publishProgress(progress);
}
output.flush();
output.close();
input.close();
return true;
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
@Override
protected void onProgressUpdate(Integer... values) {
int progress = values[0];
// 更新下载进度UI
}
@Override
protected void onPostExecute(Boolean result) {
if (result) {
// 下载完成,执行相应操作
} else {
// 下载失败,执行相应操作
}
}
}
- 在需要进行文件下载的地方,创建
DownloadTask
对象并执行任务。
DownloadTask downloadTask = new DownloadTask();
downloadTask.execute(fileUrl, savePath);
通过以上步骤,您可以使用HttpUrlConnection
类实现Android文件下载功能。根据具体需求,您可以根据示例代码进行定制和优化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android基于HttpUrlConnection类的文件下载实例代码 - Python技术站