kikki-san’s blog

公開備忘録。間違っていることもあるので参考程度にご覧ください。

javaでbitflyer apiを使ってみた

javabitflyerのPublic APIを使ってみたのでメモ。

ビットコイン取引所【bitFlyer Lightning】

BTC_JPYのTicker情報を取得して表示しているだけですが。

URLのproduct_code=BTC_JPYのBTC_JPYを書き換えると、他の通貨の情報も取れます。

User-Agentを指定しないと、なぜか403エラーになるので、Dummyを設定しています。

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class GetTicker {
    public static void main(String[] args) {

        String getTickerUrlStr ="https://api.bitflyer.jp/v1/getticker?product_code=BTC_JPY";
        HttpURLConnection connection = null;
        StringBuffer result = new StringBuffer();

        try {

            URL getTickerUrl = new URL(getTickerUrlStr);
            connection = (HttpURLConnection)getTickerUrl.openConnection();
            connection.setRequestProperty("User-Agent", "Dummy");
            connection.setRequestMethod("GET");
            int status = connection.getResponseCode();

            if (status == HttpURLConnection.HTTP_OK) {

                InputStream in =  connection.getInputStream();
                String encoding = connection.getContentEncoding();

                if(encoding == null) {encoding = "UTF-8";}

                InputStreamReader inReader = new InputStreamReader(in, encoding);
                BufferedReader bufReader = new BufferedReader(inReader);
                String line =null;

                while((line = bufReader.readLine()) != null) {
                    result.append(line);
                }
                bufReader.close();
                inReader.close();
                in.close();

            }else{
                System.out.println(status);

                InputStream in =  connection.getErrorStream();
                String encoding = connection.getContentEncoding();
                if(encoding == null) {encoding = "UTF-8";}
                InputStreamReader inReader = new InputStreamReader(in, encoding);
                BufferedReader bufReader = new BufferedReader(inReader);
                String line =null;

                while((line = bufReader.readLine()) != null) {
                    result.append(line);
                }
                bufReader.close();
                inReader.close();
                in.close();

            }

        }catch (Exception e) {
            e.printStackTrace();

        }finally {
            if (connection != null) {
                connection.disconnect();
            }
        }
        System.out.println(result);
    }
}