首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Scala中创建WSClient?

如何在Scala中创建WSClient?
EN

Stack Overflow用户
提问于 2018-12-07 06:16:09
回答 2查看 1.4K关注 0票数 0

你好,我正在编写scala代码,以便从API中提取数据。数据是分页的,所以我按顺序提取数据。现在,我正在寻找一种解决方案,将多个页面并行,并坚持以编程方式创建WSClient,而不是注入。

谁有创建WSClient的解决方案?

我找到了一个AhcWSClient(),但它需要隐式地导入参与者系统。

EN

回答 2

Stack Overflow用户

发布于 2019-09-12 23:24:29

当你不能像另一个答案中建议的那样注入一个时,你可以使用create a Standalone WS client

代码语言:javascript
复制
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import play.api.libs.ws._
import play.api.libs.ws.ahc.StandaloneAhcWSClient

implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
val ws = StandaloneAhcWSClient()
票数 3
EN

Stack Overflow用户

发布于 2018-12-07 22:33:15

没有必要在这里重新发明轮子。我不明白你为什么说不能注射WSClient如果你可以注入一个WSClient,那么你就可以像这样并行地运行这些请求:

代码语言:javascript
复制
class MyClient @Inject() (wsClient: WSClient)(implicit ec: ExecutionContext) {

  def getSomething(urls: Vector[String]): Future[Something] = {
    val futures = urls.par.map { url =>
      wsClient.url(url).get()
    }
    Future.sequence(futures).map { responses =>
      //process responses here. You might want to fold them together
    }
  }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53660520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档