将评论中的讨论与实际解决方案结合起来:
如果你移除
.toString
从您的
entity2ResponseMarshallable
方法,所以简单来说
implicit def entity2ResponseMarshallable(
entityF: Future[Entity]): ToResponseMarshallable =
entityF map (_.toJson)
您应该在服务器响应中获得正确的内容类型头。
这就是Akka HTTP想要处理
Content-Type
头-它根据最终使用的封送拆收器自动设置它。字符串,你以前有过,翻译成
text/plain
.
至于你最初的问题,我不相信改变
内容类型
此时可以手动收割台。根据
Akka documentation
,
HTTP消息的内容类型被建模为httpEntity的ContentType字段。因此,内容类型头不会出现在消息的头序列中。此外,显式添加到请求或响应的头中的内容类型头实例将不会呈现到连接上,而是触发正在记录的警告!
因此,为了手动设置内容类型,必须在
HttpEntity
实例与我最初链接的另一个问题相同-为了在路线级别上执行此操作,您必须重新定义
HTTPEntity公司
包含在您的
HttpResponse
在这个事实之后,我不确定这是可能的,在任何情况下这听起来都不是一个好主意。