我正试图点击一个POST请求,就像这里显示的Akka文档中的那个。 http://doc.akka.io/docs/akka-http/current/scala/http/client-side/request-level.html#request-level-api
但是,我正在尝试将其作为另一个已定义的类内部。如果我尝试添加任何需要Actor context
val http = HTTP(context.system)
的内容,我会收到错误消息。如何将上下文传递到我正在尝试发出POST请求的类中?
trait CustomerProfilesComponent {
def customerProfileManager: CustomerService.Async
}
object DefaultCustomerProfiles {
private case class ProfileUpdateData(path: Seq[String], data: JsObject, metadata: JsObject)
}
trait DefaultCustomerProfiles extends CustomerProfilesComponent {
self: DatabaseComponent with SourceVersionComponent with ExecutionContextComponent =>
import DefaultCustomerProfiles._
lazy val customerProfileManager = new CustomerService.Async {
import db.api._
import AvroConverter._
override def getVersion : Future[AvroVersion] = {
Future.successful(toAvro(sourceVersion))
}
}
答案 0 :(得分:0)
您需要的是actor system
。从akka-http文档发布:
请求级API在ActorSystem内共享的连接池之上实现。
请求API有两种使用方案:
within an actor
- 当你可以通过演员上下文获得演员系统时(就像你已经尝试过,但是因为你不在演员中,你没有演员上下文可用)< / LI>
outside an actor
(你的情况) - 当你可以通过提供演员系统作为依赖(通过类/方法参数或隐式参数)来获取演员系统时我希望这有用。