我一直在研究使用 HttpClient 4.1.x 在 Spring 下处理 RESTful 调用的应用程序系统。
虽然我在直接处理 httpclient 以及用作 RestTemplate 的传输方面都做得很好,但我发现我需要一些我不确定在执行中是否涵盖的东西。
“BasicResponseHandler”将内容响应视为字符串并返回它,前提是来自服务器的响应小于 300。我正在使用的 RESTful 系统提供 XML 文档作为错误响应的一部分(状态代码 >= 400 )。此 XML 响应包含一些可能对客户端开发人员有用的信息。
我想看看是否有人有任何通过 ResponseHandler 接口处理此问题的经验。本质上,BasicResponseHandler 将在状态 >= 300 的情况下抛出 ClientProtocolException。处理 AbstractHttpClient 实现将捕获该异常,静默消耗实体,然后重新抛出抛出的 IOException (ClientProtocolException)。
是否建议创建一个 ClientProtocolException 的子类来包含附加信息?
在错误状态的情况下,将任何现有文档解组为其各自的类型(如果可用),然后将其抛出,从而保留响应的内容。
还是我缺少另一种机制来处理这种情况?