代码仅供参考
private void downFile(final String httpUrl,JSONObject accountName) {
PrintWriter out = null;
Log.w(TAG, FileUtils.getSDPath());
File tmpFile = new File(FileUtils.getSDPath() + "/update");
if (!tmpFile.exists()) {
tmpFile.mkdir();//创建文件夹
}
final File file = new File(FileUtils.getUpdatedAPKFile());
String filePath = file.getPath();
try {
URL url = new URL(httpUrl);
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("charset", "utf-8");
conn.setUseCaches(false);
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
if (accountName != null) {
out = new PrintWriter(conn.getOutputStream());// 获取URLConnection对象对应的输出流
out.print(accountName);// 发送请求参数
out.flush();// flush输出流的缓冲
}
InputStream is = conn.getInputStream();
FileOutputStream fileOutput = new FileOutputStream(file);
byte[] buf = new byte[1024];//分配byte
double count = 0;
if (conn.getResponseCode() >= 400) {
Toast.makeText(activity.getApplicationContext(), "连接超时", Toast.LENGTH_SHORT).show();
} else {
while (count <= 100) {
if (is != null) {
int numRead = is.read(buf);
if (numRead <= 0) {
break;
} else {
fileOutput.write(buf, 0, numRead);
}
} else {
break;
}
}
}
conn.disconnect();//需要记得关闭连接
fileOutput.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
throw new RuntimeException("下载失败...");
}
}