如何将GET请求发送到外部API并解析其XML响应?

时间:2012-02-18 04:52:48

标签: java xml jsp

我需要向外部API发送HTTP GET / POST请求,该API返回XML数据然后解析此数据。 JSP中是否存在API?

如果我在类中使用该代码并在JSP中使用它的方法,会有任何问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用URLConnection发送HTTP请求,并以InputStream的形式获取HTTP响应。您可以使用JAXB将包含XML文档的InputStream解组到遵循XML结构的javabean实例中。

想象一下,XML响应看起来像这样,

<data>
    <foo>fooValue</foo>
    <bar>barValue</bar>
</data>

,你的JAXB javabean看起来像这样,

@XmlRootElement
public class Data {

    @XmlElement
    private String foo;

    @XmlElement
    private String bar;

    // Getters/setters.
}

然后你可以解组它如下:

InputStream input = new URL("http://example.com/data.xml").openStream();
Data data = (Data) JAXBContext.newInstance(Data.class).createUnmarshaller().unmarshal(input);
String foo = data.getFoo(); // fooValue
// ...

与JSP中的每一行Java代码一样,在JSP文件而不是普通的Java类中执行此操作并不一定会导致技术问题,但最终可能会导致维护噩梦。