0

我在为 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')

所以,我被困住了,如果你能提供任何帮助,我将不胜感激。非常感谢。

4

0 回答 0