我正在开发一个Java应用程序,它向Web服务发出HTTP请求,并返回XML。如果响应代码为200,则requestSucceeded()回调方法将使用不同的SAX处理程序将XML发送到SAXParser,具体取决于所调用的Web服务。如果响应代码不是200,则调用requestFailed()回调方法。
我正在调用的Web服务将返回两种类型的XML文档(响应代码为200):包含成功响应信息的XML文档,或包含错误信息的XML错误文档(例如,如果其中之一)请求参数格式不正确。)
我的问题是:鉴于我目前的设置,查找/处理两种XML文档(成功的XML响应或XML错误文档)的最佳方法是什么? SAX处理程序正在查找所有相关的响应信息,它将该信息存储到一个对象中,然后由我的应用程序处理。是否有一个更好的解决方案,而不是总是首先寻找独特的XML错误标签?
谢谢!
答案 0 :(得分:1)
选项#1 - 更改设置代码
为什么回复代码为200的错误? 400(错误请求)或其他错误代码可能是更好的选择。然后,您可以根据响应代码处理XML。
选项#2 - 交换内容处理程序
下面是我之前的一个答案的链接,其中我解释了如何在处理文档时交换内容处理程序。您可以使用一个内容处理程序来确定响应是内容还是错误,然后交换相应的内容处理程序以处理其余内容。
选项#3 - 使用JAXB
如果最终结果是XML将转换为对象,您是否考虑过使用JAXB?它将根据返回的内容构建基于XML的对象。