標籤:下載 android get http
android之檔案下載
android檔案下載有三個要點
- 不能在主線程中下載檔案
- 在設定檔中給定許可權
- 使用http協議的get方法串連網路下載檔案
做好這三點就可以成功的下載檔案了,前面兩點非常簡單,但很容易忘記
一般程式崩潰都是因為這兩個原因啦。而重點學習了如何使用http協議中的get方法。
public class Download { /** * 文字檔下載方法,接受的URL,返回一個字串 */ public String download(String urlString){ StringBuffer sb = new StringBuffer(); BufferedReader reader = null; String line = null; try { //建立一個HttpClient對象 HttpClient client = new DefaultHttpClient(); //建立一個HttpGet對象,將urlString傳遞給建構函式 HttpGet httpGet = new HttpGet(urlString); //執行這個請求對象,從伺服器得到響應 HttpResponse response = client.execute(httpGet); //得到響應中的狀態代碼 int code = response.getStatusLine().getStatusCode(); //200為正常響應的狀態代碼,其他為網路連接錯誤 if (code == 200) { //從響應中得到實體,再從實體中得到輸入資料流 InputStream inputStream = response.getEntity().getContent(); //將輸入資料流轉換為字串流,便於處理 reader = new BufferedReader(new InputStreamReader(inputStream)); while ((line = reader.readLine())!=null) { sb.append(line); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return sb.toString();}
成功從自己搭建的本機伺服器tomcat中下載到xml檔案
其實get方法還是非常好理解的。
關鍵在於發出請求—–>得到響應—–>分析響應是否正確—->處理響應內容。
當然,get方法在從伺服器請求資料時比較好用,向伺服器發送資料的時候,更多的使用的是post方法。由於這次是下載,就直接使用了get方法。下面是post方法與get方法的區別。
在用戶端,Get方式在通過URL提交資料,資料在URL中可以看到;POST方式,資料放置在HTML HEADER內提交。
GET方式提交的資料最多隻能有1024位元組,而POST則沒有此限制。
安全性問題。使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些資料是中文資料而且是非敏感性資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感性資料,那麼還是使用 post為好。
android之檔案下載