Engineering

Feb 05, 2017

Kotlinでhttpリクエストを投げてみる。 (khttp)

 

 

さて、今回はkotlinでHTTPリクエストを送ってみます。

 

khttpを使ってみる

今回使用するライブラリは、 khttp です https://github.com/jkcclemens/khttp

ライブラリは ここ から見つけてきました。

使い方はkhttpの上記リンク先に書いています。

ひとまず build.gradle.ktsは

buildscript {

    repositories {
        gradleScriptKotlin()
    }

    dependencies {
        classpath(kotlinModule("gradle-plugin"))
    }
}

plugins {
    application
}

apply {
    plugin("kotlin")
}

configure {
    mainClassName = "samples.HelloWorldKt"
}

repositories {
    gradleScriptKotlin()
    jcenter()
}

dependencies {
    compile(kotlinModule("stdlib"))
    "compile"("khttp:khttp:0.1.0")
}

こんな感じで メインの処理は以下です。

package samples

import khttp.get

fun main(args: Array) {
    var url : String = "https://lightning.bitflyer.jp/v1/getboard" // bitFlyerのAPI URL
    // Get our IP
    println(get(url).jsonObject.getInt("mid_price"))
}

リクエストの送信先はなんでもいいのですが 今回は私の最近気になる、 bitFlyerさんのAPIを利用して、 ビットコインの現在価格を取得してきます。

ちなみにjson はこんな形でレスポンスを返します。

{"mid_price":116884.0,
"bids":[{"price":116867.0,"size":2.346},
        {"price":116853.0,"size":2.0},
        {"price":116850.0,"size":10.18},
        {"price":116845.0,"size":0.04046836},
        ・
        ・
        ・
        (略)

では、実際に動かしてみます。

$ ./gradlew run
:compileKotlin
w: The '-d' option with a directory destination is ignored because '-module' is specified
:compileJava NO-SOURCE
:copyMainKotlinClasses
:processResources NO-SOURCE
:classes UP-TO-DATE
:run
116840
BUILD SUCCESSFUL

ちなみに余計な出力を消すときは -q オプション をつけてあげてください。

見事 1BTCあたりの日本円価格の取得に成功しています。 以上です!!

 

関連記事

記事検索

気になるサイト内の記事を検索する

プロフィール

バンクーバー在住のフルスタックエンジニアです。React, Ruby on Rails, Go などでお仕事しています。職場がトロントなので日本、トロント、バンクーバーの三つの時天空を操って生活しています。

プロモーション