android download file by stream
16lz
2021-12-18
new AsyncTask<Void, Integer, InputStream>() {
InputStream is = null;
@Override
protected InputStream doInBackground(Void... params) {
try {
URL mUrl = new URL(url);
HttpURLConnection c = (HttpURLConnection) mUrl
.openConnection();
c.setRequestMethod("POST");
String host = null;
try {
host = new URL(url).getHost();
} catch (MalformedURLException e) {
e.printStackTrace();
}
String cookieStr = CookieManager.getInstance()
.getCookie(host);
if (!AppUtils.isEmpty(cookieStr)) {
c.addRequestProperty("Cookie", cookieStr
+ "; AcSe=0");
}
c.setDoOutput(true);
c.connect();
is = c.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return is;
}
@Override
protected void onPostExecute(InputStream result) {
String fileName = contentDisposition.replaceFirst(
"attachment; filename=", "");
try {
File file = new File(Environment.getExternalStorageDirectory() + "/" +
Environment.DIRECTORY_DOWNLOADS + "/" +
fileName);
OutputStream out = new FileOutputStream(file);
byte buf[] = new byte[1024];
int len;
while ((len = result.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
super.onPostExecute(result);
}
}.execute();
InputStream is = null;
@Override
protected InputStream doInBackground(Void... params) {
try {
URL mUrl = new URL(url);
HttpURLConnection c = (HttpURLConnection) mUrl
.openConnection();
c.setRequestMethod("POST");
String host = null;
try {
host = new URL(url).getHost();
} catch (MalformedURLException e) {
e.printStackTrace();
}
String cookieStr = CookieManager.getInstance()
.getCookie(host);
if (!AppUtils.isEmpty(cookieStr)) {
c.addRequestProperty("Cookie", cookieStr
+ "; AcSe=0");
}
c.setDoOutput(true);
c.connect();
is = c.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return is;
}
@Override
protected void onPostExecute(InputStream result) {
String fileName = contentDisposition.replaceFirst(
"attachment; filename=", "");
try {
File file = new File(Environment.getExternalStorageDirectory() + "/" +
Environment.DIRECTORY_DOWNLOADS + "/" +
fileName);
OutputStream out = new FileOutputStream(file);
byte buf[] = new byte[1024];
int len;
while ((len = result.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
super.onPostExecute(result);
}
}.execute();
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer