bitFlyerAPIを呼んでみる

VisulaStudioの起動~プロジェクトの作成

Visual Studioの起動

VisualStudioを起動したら以下の画面が表示される。Microsoftアカウントを持っていればサインインしてもいいし、作ってもよい。さしあたり、「後でおこなう」でも構わない。

以下のページが表示されるので、とりあえず閉じる。

プロジェクトの作成

メニューから以下を選択する

コンソールアプリケーションを選択し、適当な名前を付ける。

以下の画面が表示される。

プログラムの作成

Program.csのコードを以下のように変更する(コピペ可)

using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;


namespace HttpClientSample
{

    class Program
    {
        static HttpClient client = new HttpClient();


        static void Main()
        {
            RunAsync().GetAwaiter().GetResult();
        }

        static readonly Uri endpointUri = new Uri("https://api.bitflyer.jp");

        static async Task RunAsync()
        {
            var method = "GET";
            var path = "/v1/ticker";
            var query = "?product_code=BTC_JPY";

            using (var client = new HttpClient())
            using (var request = new HttpRequestMessage(new HttpMethod(method), path + query))
            {
                client.BaseAddress = endpointUri;
                var message = await client.SendAsync(request);
                var response = await message.Content.ReadAsStringAsync();

                Console.WriteLine(response);
                System.Diagnostics.Debug.WriteLine(response);
            }
        }


    }
}

ビルド~実行

ビルド

メニューから以下を実行。

実行

以下をクリック。

結果

以下が出力ウィンドウに表示される。

{"product_code":"BTC_JPY","timestamp":"2018-06-30T07:19:44.897","tick_id":48641,"best_bid":708014.0,"best_ask":708052.0,"best_bid_size":0.40687558,"best_ask_size":0.0000324,"total_bid_depth":1583.27621937,"total_ask_depth":1790.68438343,"ltp":708052.0,"volume":316032.45983578,"volume_by_product":9648.24297571}

コマンドプロンプトからの実行方法

コンソールアプリケーションなので、コマンドプロンプトからも実行可

ビルド時の出力ウィンドウに実行ファイルのパスが書いてあるので

コマンドプロンプトを開き、上記のファイルを実行する。

C:\Users\***\source\repos\BitflyerTest\BitflyerTest\bin\Debug>BitflyerTest.exe
{"product_code":"BTC_JPY","timestamp":"2018-06-30T05:39:59.327","tick_id":1528172,"best_bid":710331.0,"best_ask":710549.0,"best_bid_size":0.41,"best_ask_size":0.0100324,"total_bid_depth":1584.21060393,"total_ask_depth":1780.80374232,"ltp":710305.0,"volume":329283.34378131,"volume_by_product":9905.91000696}

 

解説

参考サイト

bitflyerのサンプル

sing System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

class Sample
{
static readonly Uri endpointUri = new Uri("https://api.bitflyer.jp");

public static async Task Main()
{
var method = "GET";
var path = "/v1/ticker";
var query = "";

using (var client = new HttpClient())
using (var request = new HttpRequestMessage(new HttpMethod(method), path + query))
{
client.BaseAddress = endpointUri;
var message = await client.SendAsync(request);
var response = await message.Content.ReadAsStringAsync();

Console.WriteLine(response);
}
}
}

上記だけでは動かないので、以下を参考にした。

.NET クライアント (c#) から Web API を呼び出す

ソースコード解説

C#から一般的なWeb APIを呼び出して、コンソールに表示しているだけ。

Taskオブジェクトの使い方は、C#の非同期タスクの呼びたしかたのフォーマットらしい。

詳しくは自分で調べてみよう!

コメント