Akka完成参数类型

时间:2017-07-19 11:31:13

标签: routing akka

对于akka路由,我们使用如下完整。完整(的HttpResponse)

这个完整的函数是否只接受来自akka.scalads.HttpResponse或甚至org.apache.http.HttpResponse的HttpResponse。如果它不接受,有人可以解释为什么吗?

1 个答案:

答案 0 :(得分:1)

完整参数类型

the documentation,您可以看到func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { var retunValue = 0 switch (mySegmentControll.selectedSegmentIndex){ case 1 : retunValue = privateList.count break case 2: retunValue = publicList.count break case 3: retunValue = protected.count break default : retunValue = 1;// use this break } return retunValue } 接受了许多不同的参数类型,包括akka的complete

HttpResponse

Apache / Akka响应

但是,

Complete不接受apache响应类型。

大多数def complete[T :ToResponseMarshaller](value: T): StandardRoute def complete(response: HttpResponse): StandardRoute def complete(status: StatusCode): StandardRoute def complete[T :Marshaller](status: StatusCode, value: T): StandardRoute def complete[T :Marshaller](status: Int, value: T): StandardRoute def complete[T :Marshaller](status: StatusCode, headers: Seq[HttpHeader], value: T): StandardRoute def complete[T :Marshaller](status: Int, headers: Seq[HttpHeader], value: T): StandardRoute 成员变量很容易与相应的apache变量匹配,但有一个很大的例外:HttpResponse是akka-stream ResponseEntity。 apache HttpEntity使用Source[ByteString, Any]来表示非akka / stream感知的数据,因此如果没有预先存在的akka​​ InputStream,则无法进行直接翻译。

可以从apache http响应编写自己的implicit conversion function到akka http响应,这将允许您传递apache响应以完成:

ActorSystem