httpURLConnection获取网络数据:XML格式返回与Json格式返回
时间: 2024-06-08 12:09:15 浏览: 113
网络连接和XML,JSON解析
4星 · 用户满意度95%
使用 HttpURLConnection 获取网络数据可以支持 XML 格式返回和 JSON 格式返回。
对于 XML 格式返回,可以使用 Java 内置的 DOM 或 SAX 解析器来解析 XML 数据。下面是一个示例代码:
```java
URL url = new URL("http://example.com/data.xml");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/xml");
InputStream stream = conn.getInputStream();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(stream);
// 对 XML 数据进行解析,例如:
NodeList nodeList = doc.getElementsByTagName("item");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
String title = node.getAttributes().getNamedItem("title").getNodeValue();
// ...
}
```
对于 JSON 格式返回,可以使用第三方库,例如 Google 的 Gson、Apache 的 Jackson 等来解析 JSON 数据。下面是一个示例代码:
```java
URL url = new URL("http://example.com/data.json");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
InputStream stream = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(response.toString(), JsonObject.class);
// 对 JSON 数据进行解析,例如:
JsonArray jsonArray = jsonObject.getAsJsonArray("items");
for (JsonElement element : jsonArray) {
JsonObject item = element.getAsJsonObject();
String title = item.get("title").getAsString();
// ...
}
```
阅读全文