編輯:關於Android編程
同樣在上一篇服務器的基礎上,本文客戶端也在登錄界面 Andriod簡單http get請求基礎上,用戶注冊後跳轉到下載界面,本文下載界面只有兩個View,一個是textView顯示注冊後用戶名(本文未做登錄界面,方法與注冊類似,只是在服務器端查詢數據庫中用戶名,密碼是否正確)。另一個為下載按鈕,點擊後下載到sd卡中。
下面先將工具包,該類封裝了Http請求,本文使用get方法,使用HttpURLConnection類來負責具體請求。
httpUtils類中添加sendDownloadPost方法
具體代碼如下:
public static void sendDownloadPost(URL urls) { InputStream inputStream=null; //String path="http://192.168.0.179:8080/Myweb/download.do"; OutputStream outputStream=null; try { //url = new URL(urls); //本文采用HttpURLConnection,HttpClient一樣可以 HttpURLConnection connection=(HttpURLConnection) urls.openConnection(); connection.setRequestMethod("GET"); //超時請求設置為3s connection.setConnectTimeout(3000); //設置響應時間10s connection.setReadTimeout(10000); connection.setDoInput(true); connection.setDoOutput(true); //獲取返回碼 int responseCode=connection.getResponseCode(); //請求正確 if(responseCode==200) { Log.d(TAG, "返回正確!!"); inputStream=new BufferedInputStream(connection.getInputStream()); //生成sd卡文件路徑 File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf"); outputStream=new BufferedOutputStream(new FileOutputStream(file)); byte[] str=new byte[2048]; int len=-1; if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { Log.d(TAG, "有權限"); //將inpustream寫入到sd卡 while((len=inputStream.read(str))!=-1) { outputStream.write(str, 0, len); } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(inputStream!=null) { try { inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(outputStream!=null) { try { outputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return; }
具體在manifest.xml
添加如下:
ps:若想下載文件名與服務器上文件名相同,可在文件名之前,中間處理了中文亂碼問題
String filename = connection.getHeaderField("Content-Disposition");
filename=new String(filename.getBytes("iso8859-1"), "gbk");
filename=filename.split("filename=")[1];
添加到
File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf");A.pdf改為filename即可
我們都知道對每一個Weibo Item都有用戶頭像,而且每一條微博還可能帶有圖片。如果在加載列表的同時加載圖片,這樣有幾個缺點,第一很費事,界面卡住,用戶體
我們在選購安卓手機的時候,參數中最容易犯暈的就是ROM和RAM了,許多朋友都不了解是什麼意思,廠家也借助這一點來大做文章,下面我就給大家來簡單的介紹一下其中
一、 Binder概述1.1 為什麼要用binder出於安全性、穩定性和內存管理的考慮,Android的應用和系統服務運行在分離的進程中,但是它們之間需要通信和共享數據避
首先你需要以下四個工具: 1.JDK (Java Development kit) 2.Eclipse 3.Android SDK(Software Developme