Java 執行 html GET - 以 Google News API 為例
用 Java 執行 GET 來取得 html 上的資料蠻常用在 API 的介接,例如對方提供了 API 位址,只要用 GET 的方式就可以取回資料。
在不需要 ssh 時候的 GET 則只要幾行指令就好,非常的簡單又方便。這邊就用擷取 Google News 所提供的 API 來當作示範,看看到底有多簡單。
使用 Google News 的 API 前先要取得 apiKey,直接連到 https://newsapi.org 點選右上角的「Get API Key」,之後再輸入 email 和 密碼就可以。
Request
取得 key 之後,就可以來看 Google News API 可以丟什麼 request 進去,在介紹頁裡面寫的蠻清楚的。例如語系、時間範圍、新聞種類,甚至回傳分頁數量等也都可以直接掛上 API 做呼叫。
最基本的呼叫方式為標準網址再掛上 apiKey 即可
http://newsapi.org/v2/top-headlines?apiKey={apiKey}
依據介紹頁上的說明,如果我們想看國家為台灣、種類為健康類型的新聞,那就只要在網址上加上其他 property 就好
http://newsapi.org/v2/top-headlines?country={country}&category={category}&apiKey={apiKey}
Response
要確認有沒有接收成功,可以直接看 response 回來的 status,若有正確回傳則是 true,可以直接先判斷這個就好,後面會掛著總共回傳多少數量的 totalResults ,以及傳回的文章,並用陣列儲存在 articles 內。
知道該怎麼填入完整的 request URL 後,再 GET 的語法,就可以快速抓回資料,先用 java.net.HttpURLConnection 連結要 GET 的網址,再用 BufferedReader 抓回 response 就一切大功告成。收工 !!