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();