さて、今回は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あたりの日本円価格の取得に成功しています。 以上です!!