【问题标题】:How to handle it when the same server request may return two different xml responses?当同一个服务器请求可能返回两个不同的xml响应时如何处理?
【发布时间】:2014-08-01 13:04:43
【问题描述】:

我已经看到很多关于如何在单个响应中解组多个根元素的事情。我的问题有点不同。我需要联系的 API 设置有点奇怪。即使出现错误,服务器也会返回 200,但它会以 XML 格式返回错误消息,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Number></Number>
    <Source></Source>
    <Description></Description>
    <HelpFile/>
    <HelpContext/>
</Error>

但是,预期的响应更像是:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Number></Number>
    <LabelImage></LabelImage>
    <Name></Name>
    <Address1/>
    <Address2></Address2>
    <City></City>
    <State></State>
    <Zip></Zip>
    <LabelSequenceNumber></LabelSequenceNumber>
    <DropOff></DropOff>
    <LogMessage/>
</Response>

我正在尝试弄清楚如何接受来自同一请求的这些响应中的任何一个。

我正在使用 JaxB 和 RestTemplate 来处理这些请求和响应。我需要与之交谈的 API 是 Rest 和 SOAP 的某种糟糕组合,但我无法控制那部分。

【问题讨论】:

    标签: xml jaxb resttemplate


    【解决方案1】:

    我们通过为每个代表扩展响应的类创建一个接口解决了这个问题。我不知道为什么我以前没有想到这一点,当时我对 JaxB 的理解是不存在的。收到响应时,会检查“Error”这个词,如果找到,则将其解组到 ErrorResponse 类中,否则将其解组到成功响应中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多