WebAPIを用いたデータ取得
HTTPをベースにしてデータをやり取りするWebAPIですが、一般的にはWebサイトへのアクセスをブラウザ経由で行います。
URLをブラウザ上に入力し、GETメソッドでアクセスするイメージです。
一方、URLの中に日付が命名規則で入っており、「複数日付分のファイルを一気に取得したい」であったり「csvファイルの特定の項を編集しながら保存したい」といったようなことをしたいケースもあります。
そのような際にJavaを用いて実現した方法をメモしておきます。
コード
URL url; try { String url_s = "[アクセスするURL]"; url = new URL(url_s); URLConnection conn; conn = url.openConnection(); InputStream in = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
lineとして一行ずつl標準出力していますが、あとはただの文字列なので必要に応じてファイルに保存も可能です。
また、lineの中がcsv形式とすると
以下のようにしてtokenとして切り出すことも可能です。
token = new StringTokenizer(line, ","); while (token.hasMoreTokens()) { //処理を書く //token.nextToken()で項を順に取得 }
以上、Javaを用いたGETリクエストを行うコード紹介でした。