JavaでBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)

Pocket

 

 

C#PythonBitflyerの板情報を取得しました。

 

【C#】
C#でBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)
C#でBitflyerの板情報をAPIで取得して、最新のレートを出力してみよう(仮想通貨の自動売買ツール(bot)制作)

【Python】
PythonでBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)
PythonでBitflyerの板情報をAPIで取得して、最新のレートを出力してみよう(仮想通貨の自動売買ツール(bot)制作)

 

 

ではJavaにメインのクラスを作り、そこに追加していきましょう。

 

mainのクラスを作るのはクラス作成時に赤い囲みの部分をチェックして

このクラスからJavaを起動させれば大丈夫です。

 

 

 

 

 

 

 

 

 

まず呼び出し側


public static void main(String[] args) throws IOException {
    // TODO 自動生成されたメソッド・スタブ
    String ENDPOINTURI = “https://api.bitflyer.jp”;

    //呼び出し
    String josnData = getHttpRequest(ENDPOINTURI,”/v1/board?product_code=BTC_JPY”);

    System.out.println(josnData);

}


 

取得関数です


    public static String getHttpRequest( String site_url, String pass_url ) throws IOException
    {

        //try{
        URL url = new URL(site_url + pass_url);

        HttpURLConnection connection = null;

        try{
            //コネクションを作成
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod(“GET”);
            connection.setRequestProperty(“User-Agent”,”Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-JP-mac; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6″);
            connection.setConnectTimeout(10000);
            connection.setReadTimeout(10000);
            connection.setUseCaches(true);

            String getStr = “”;

            //レスポンスを取得
            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK)
            {
                //文字列として出力
                try (InputStreamReader isr = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8);

                BufferedReader reader = new BufferedReader(isr))
                {
                    String line;
                    while ((line = reader.readLine()) != null) {
                        getStr += line;
                    }
                }
            }
            else
            {
                //エラー処理(エラーの場合はnullを返す)
                try (InputStreamReader isr = new InputStreamReader(connection.getErrorStream(),StandardCharsets.UTF_8);

                BufferedReader reader = new BufferedReader(isr)) {
                    String line;
                    while ((line = reader.readLine()) != null) {
                        getStr += line;
                    }
                }
                return null;
            }

            return getStr;
        }
        finally {
            if (connection != null) {
                connection.disconnect();
            }
            //return null;
        }
    }


Javaの場合は、C#Pythonと比べて

いろいろとエラーに厳しいのでしっかりと誤魔化さず書く必要があります。

 

JavaPythonと同じでコンソール画面に出力されます。

 


System.out.println(josnData);


 

これで出力ですね。

 

取得関数ですが、基本的には今回以降もPOSTでも

これがベースとなります。

上のをコピーしていただき

検索等で調べていただければWeb接続に関しては

そこまで難しいものではありません。

ただ


connection.setRequestProperty(“User-Agent”,”Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-JP-mac; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6″);


この部分だけ説明をしておきたいと思います。

 

どうもブラウザから取得しているという情報を流さないと

取得できないAPIの場所が結構あったりします。

 

C#などは一応、IEやEdgeとしてAPIにアクセスしています。

なので形式としてブラウザから接続していますよという情報を

向こうに流しておいた方が取得できる取引所が増えます。

 

 

これで得られる情報は

 


{“mid_price”:698430.0,”bids”:[{“price”:698313.0,”size”:1.43},{“price”:698300.0,”size”:1.07}・・・・・


いつも通りのこんな感じです。

 

次回はJavaでこれを整形したいと思います。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です