android文件下載代碼

ymny 9年前發布 | 2K 次閱讀 Java Android

android文件下載有三個要點

  1. 不能在主線程中下載文件
  2. 在配置文件中給定權限
  3. 使用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為好。

 本文由用戶 ymny 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!