【发布时间】:2019-06-28 08:06:06
【问题描述】:
我正在使用 sttp 客户端。我想将响应解释为除以行的字符串,例如Observable[String]
这里是sttp流api:
import java.nio.ByteBuffer
import com.softwaremill.sttp._
import com.softwaremill.sttp.okhttp.monix.OkHttpMonixBackend
import monix.eval.Task
import monix.reactive.Observable
implicit val sttpBackend = OkHttpMonixBackend()
val res: Task[Response[Observable[ByteBuffer]]] = sttp
.post(uri"someUri")
.response(asStream[Observable[ByteBuffer]])
.send()
那么我怎样才能得到Observable[String]?
这里有一些想法:
1. 有没有一种简单的方法可以通过线观察split ?
2. 或者我可以从响应中得到原始的InputStream,所以我可以轻松拆分它,但我找不到使用 asStream[InputStream]
3. 之类的方法,或者只是使用 http 后端而不使用 sttp 层?
【问题讨论】:
-
嘿@zella!你能解决问题吗?
-
@ErnestSadykov 不,我上次没有使用 sttp。但例如,您可以在这里看到github.com/zella/rx-process2/blob/master/src/test/scala/com/… 如何将
Observable[Array[Bytes]]解码为字符串。 rxjavaFlowable轻松转换为 monix。 -
请注意,上面链接中的
Strings具有拆分Observable[String]byLine 的方法。示例:github.com/zella/tuapse-play/blob/master/src/main/java/org/…
标签: scala reactive-programming monix sttp