public void getDataSource2(String strPath) { File f = new File(myActivity.getFilesDir().getPath() + "/" + "alipay.apk"); if (f.exists()) { f.delete(); } DefaultHttpClient m_httpclient; HttpGet m_httppost; m_httpclient = new DefaultHttpClient(); m_httppost = new HttpGet(strPath); HttpParams httpParams = m_httpclient.getParams(); // 设置网络超时参数 HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000); HttpConnectionParams.setSoTimeout(httpParams, 45 * 1000); try { HttpResponse response = m_httpclient.execute(m_httppost); if (response.getStatusLine().getStatusCode() != 200) { errorFlag = true; } else { HttpEntity entity = response.getEntity(); fileLength = entity.getContentLength(); log("download file size " + fileLength); setProcessStep((int) fileLength); InputStream content = entity.getContent(); saveStream(content); } } catch (ClientProtocolException e) { // network Exception to be log SystemExceptionHandler.getInstance().saveConnInfoToFile(e, Constants.MONITORPOINT_CONNECTERR); e.printStackTrace(); errorFlag = true; errorStringId = R.string.FailDownloadFile; } catch (IOException e) { // network Exception to be log SystemExceptionHandler.getInstance().saveConnInfoToFile(e, Constants.MONITORPOINT_CONNECTERR); e.printStackTrace(); errorFlag = true; } catch (Exception e) { // network Exception to be log SystemExceptionHandler.getInstance().saveConnInfoToFile(e, Constants.MONITORPOINT_CONNECTERR); e.printStackTrace(); errorFlag = true; } }
private void saveStream(InputStream is) { FileOutputStream fos; try { // fos = new FileOutputStream(myTempFile); fos = myActivity.openFileOutput("alipay.apk", Context.MODE_WORLD_READABLE); fileLocation = myActivity.getFilesDir().getPath() + "/" + "alipay.apk"; // SaveUrl(myTempFile.getPath()); SaveUrl(fileLocation); byte buf[] = new byte[5120]; int total = 0; do { int numread = is.read(buf); if (numread <= 0) { break; } fos.write(buf, 0, numread); total += numread; setProcess(total); } while (!mCanceled); is.close(); } catch (FileNotFoundException e) { // network Exception to be log SystemExceptionHandler.getInstance().saveConnInfoToFile(e, Constants.MONITORPOINT_CONNECTERR); e.printStackTrace(); errorFlag = true; } catch (Exception ex) { // network Exception to be log SystemExceptionHandler.getInstance() .saveConnInfoToFile(ex, Constants.MONITORPOINT_CONNECTERR); errorFlag = true; } finally { try { is.close(); } catch (IOException e) { // network Exception to be log SystemExceptionHandler.getInstance() .saveConnInfoToFile(e, Constants.MONITORPOINT_CONNECTERR); } } }