なんか手っ取り早く外部サーバーとの通信を書けないか探したのでメモ
自分で適当に作ったやつ
qiita.scala
private def getRequest[A](uri: String): Future[String] = {
val request = HttpRequest(GET, uri = Uri(uri))
val res = Http().singleRequest(request)
res.flatMap { r =>
res.entity.dataBytes.runFold(ByteString.empty)(_ ++ _).map(_.utf8String)
}
}
下のところがすごい冗長感が溢れる
qiita.scala
res.entity.dataBytes.runFold(ByteString.empty)(_ ++ _).map(_.utf8String)
リファクタしたやつ
qiita.scala
private def getRequest[A](uri: String): Future[String] = {
val request = HttpRequest(GET, uri = Uri(uri))
val res = Http().singleRequest(request)
res.flatMap { r =>
Unmarshal(r.entity).to[String]
}
}
qiita.scala
Unmarshal(r.entity).to[String]
Unmarshalを使えば短くかける^^
うれしい
使い方
qiita.scala
val response: Future[String] = getRequest(uri = "http:~~~~~")