scala プログラムで特定の URL の画像をダウンロードしたいと考えています。私は次のようなことをしようとしていますが、見つけることができるすべてのディスパッチャーの例は、データストリームではなくテキストについて話しています。ディスパッチを使用して URL からバイナリをダウンロードする例を教えてもらえますか? img を直接使用しようとすると、Future に関するコンパイラ バーフが表示されます。
私が実行しようとしているタスクは、Facebook のプロフィール画像を取得することです。
def copyUrl( uri : String ) : Array[Byte] = {
val svc = url(uri)
val img = Http(svc OK as.Bytes)
for ( i <- img ) {
println(i)
}
// something here but no idea
img.map(_.toArray)
}
次のコンパイラ エラーが表示されます
ProfileImage.scala:31: type mismatch;
[error] found : scala.concurrent.Future[Array[Byte]]
[error] required: Array[Byte]
[error] img.map(_.toArray)
[error] ^
[error] one error found
私も試してみました
def copyUrl( uri : String ) : Array[Byte] = {
result = scala.io.Source.fromURL(uri).map(_.toByte).toArray
}
その結果、
Exception being returned to browser when processing /oauth/welcome java.nio.charset.MalformedInputException: Input length = 1