如何向外部API发送GET请求并解析其XML响应?
问题描述:
我需要向外部API发送HTTP GET/POST请求,该API返回XML数据,然后解析这些数据。在JSP中是否存在一个API?如何向外部API发送GET请求并解析其XML响应?
如果我在类中使用该代码并在JSP中使用它的方法,会有什么问题吗?
答
您可以使用URLConnection
来发送HTTP请求并获取HTTP响应作为InputStream
。您可以使用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 Cla ss不一定会导致技术问题,但最终可能会导致维护噩梦。
thanku。之后,如何访问特定的元素?数据包含未编组内容。如何访问“用户名”元素的形式呢? – 2012-02-18 05:20:10
呃,只需像上例那样将一个普通的javabean getter方法添加到'Data'类。你熟悉javabeans吗?你有没有打扰点击JAXB链接?它向您指出了JAXB教程。 – BalusC 2012-02-18 05:21:24
我在答案中编辑了一个基本示例。 – BalusC 2012-02-18 05:25:39