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

Java 如何向外部API发送GET请求并解析其XML响应?,java,xml,jsp,Java,Xml,Jsp,我需要向一个外部API发送一个HTTPGET/POST请求,该API返回XML数据,然后解析该数据。JSP中是否存在用于此的API 如果我在类中使用该代码并在JSP中使用该代码的方法,会有任何问题吗?您可以使用发送HTTP请求并以InputStream的形式获取HTTP响应。您可以使用将包含XML文档的InputStream解组到遵循XML结构的javabean实例中 假设XML响应如下所示 @XmlRootElement public class Data { @XmlElement

我需要向一个外部API发送一个HTTPGET/POST请求,该API返回XML数据,然后解析该数据。JSP中是否存在用于此的API

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

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

假设XML响应如下所示

@XmlRootElement
public class Data {

    @XmlElement
    private String foo;

    @XmlElement
    private String bar;

    // Getters/setters.
}

食品价值
barValue
您的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类中执行此操作不一定会导致技术问题,但最终可能会导致维护噩梦。

thanku。之后,如何访问特定元素?数据包含未编组的内容。如何从中访问“username”元素?呃,只需向
Data
类添加一个普通的javabean getter方法,如示例所示。你熟悉javabeans吗?您是否费心点击JAXB链接?它向您介绍JAXB教程。我是新手。我查过那本手册了。但这很难理解。所以为了避免混淆自己,我试图找到一个简单易懂的教程。我对javabean知之甚少。您正在谈论的是创建一个属性名与XML元素相同的类,并编写一个函数返回该变量吗?谢谢您的示例。jaxbjavabean与类相同。对吗?嗯,那只是一个Java类,对。我建议把这些都放在一边,先花几天/几周的时间阅读一本基本的Java书籍/教程,熟悉Java语言和术语的基础知识。