1
我需要向外部API發送HTTP GET/POST請求,該API返回XML數據,然後解析這些數據。在JSP中是否存在一個API?如何向外部API發送GET請求並解析其XML響應?
如果我在類中使用該代碼並在JSP中使用它的方法,會有什麼問題嗎?
我需要向外部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