How to download http file in Android

本篇文章用來記錄如何在Android裡面透過 Http 抓取檔案

這邊主要會用到兩個物件,分別是 URL 以及 HttpURLConnection

步驟如下

  1. 根據目標的URL去初始化對應的URL物件
  2. 透過該 URL 得到對應的 HttpURLConnection
  3. 從該 HttpURLConncetion 取得回應,譬如 Header或是Body

所以接下來看一下每個詳細步驟,這邊假設使用 http://127.0.0.1/test 作為檔案的測試

1
2
3
4
5
6
URL url = null;
try {
url = new URL("http://127.0.0.1/test");
} exception (MalformedURLException e) {
System.out.println(e.getMessage());
}

由於 URL 本身會有 MalformedURLException 要處理,所以記得用 Try/Catch 包起來處理一下錯誤

1
HttpURLConnection httpConn = (HttpURLConnction)url.openConnection();

這樣就可以取得該 HTTP 的連線了,接下來就可以針對 ResponseCode 以及 Data 本身去做後續的處理

1
2
3
4
5
6
int responseCode = httpConn.getResponseCode();

if (HttpURLConnection.HTTP_OK == responseCode) {
InputStream is = httpConn.getInputStream();
//Handle InputStream
}