LoginSignup
5
5

More than 5 years have passed since last update.

Android/ScalaのHTTPクライアント - Bee Client 編

Last updated at Posted at 2014-02-15

scalaのHTTPクライアントとしてDispatchが有名の様子。しかし現在Androidで使うには古い0.7系を使うかトリックを使う必要があるとのこと。

別の選択肢として Bee Clientを試した。 java.net.URL のscalaによる軽量なラッパであり、高速かつ省メモリと謳われている。

1. セットアップ

こちらのページにあるように、sbtであればbuild.sbtに依存関係を足すだけ。

proguard の処理中に下のエラーが出た。

$ sbt
> install
...
[error] (android2/compile:proguard) java.io.IOException: Can't write [... (snip) ... /target/classes-android2-compile-0.1.min.jar] (Can't read [... (snip) ... /.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.13.jar(;;;;!META-INF/MANIFEST.MF,!**/R.class,!**/R$*.class,!**/TR.class,!**/TR$.class,!**/library.properties)] (Duplicate zip entry [logback-classic-1.0.13.jar:org/slf4j/impl/StaticLoggerBinder.class]))
...

SL4JのバインディングがAndroid付属のもの(android.util.Log)と競合している様子。build.sbtからlogback-{core, classic}を除くとパッケージのビルドがうまくいった。

// build.sbt
libraryDependencies ++= Seq(
    "uk.co.bigbeeconsultants" %% "bee-client" % "0.21.+",
    "org.slf4j" % "slf4j-api" % "1.7.+"
)

resolvers += "Big Bee Consultants" at "http://repo.bigbeeconsultants.co.uk/repo"

2. 動作確認

AndroidManifest.xmlに下のパーミッション設定があるのを確認して、

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

こちらのテスト用Activityを実行したところ、無事にHTMLが端末に表示された。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5