我在为 atom+xml 提要编写解组器时遇到问题。提要只是 XML,所以我希望能够依赖NodeSeqUnmarshaller
,但解组器具有内容范围(text/xml
, application/xml
, text/html
, application/xhtml+xml
) - 即application/atom+xml
不包含在列表中。
根据下面@jrudolph 的评论,我尝试使用 Unmarshaller.delegate 解决问题,如下所示:
implicit val atomUnmarshaller =
Unmarshaller.delegate[NodeSeq, NodeSeq]('application/atom+xml')(identity)
val pipeline: HttpRequest => Future[NodeSeq] = (
sendReceive
~> unmarshal[NodeSeq]
)
val response: Future[NodeSeq] = pipeline(request)
我在运行时看到此异常消息:
spray.httpx.PipelineException: UnsupportedContentType(Expected 'text/xml' or
'application/xml' or 'text/html' or 'application/xhtml+xml')
所以,我被困住了,如果你能提供任何帮助,我将不胜感激。非常感谢。