akka http解组可用于字符串,但不';我不能和实体一起工作
我让一个参与者接收两种类型的响应,都是json格式的:akka http解组可用于字符串,但不';我不能和实体一起工作,akka,akka-http,spray-json,Akka,Akka Http,Spray Json,我让一个参与者接收两种类型的响应,都是json格式的:Token和ShowInfoResponse case class Token(token: String) case class GetShowInfoResponse(data: List[TvdbEpisode]) case class TvdbEpisode(episodeName: String, airedSeason: Int, airedEpisodeNumber: Int, firstAired: String) akka
Token
和ShowInfoResponse
case class Token(token: String)
case class GetShowInfoResponse(data: List[TvdbEpisode])
case class TvdbEpisode(episodeName: String, airedSeason: Int, airedEpisodeNumber: Int, firstAired: String)
akka http在使用令牌
解组实体方面没有问题,但由于某些原因,它不会使用ShowInfoResponse
解组实体,即使在提取实体的主体时它工作正常:
def receive = {
case HttpResponse(StatusCodes.OK, _, entity, _) =>
entity.dataBytes.runFold(ByteString(""))(_ ++ _).foreach { body =>
Unmarshal(body.utf8String).to[ShowInfoResponse] pipeTo self
Unmarshal(body.utf8String).to[Token] pipeTo self
}
Unmarshal(entity).to[ShowInfoResponse] pipeTo self
Unmarshal(entity).to[Token] pipeTo self
case Token(_) =>
println("Received token")
case ShowInfoResponse(_) =>
println("Received show info")
结果(通知缺少第二个“收到的节目信息”):
为什么会这样
Received token
Received token
Received show info