有时会看到某一个网站上面会有天气预报,这些天气预报有的是直接调用了免费的webservice。
一些免费的webservice:http://www.webxml.com.cn/zh_cn/web_services.aspx
这里测试使用天气接口:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
代码:WeatherUtil.java工具类:
package com.mfc.test;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* 2017-8-27 16:33:04
* 获取天气预报的工具类
* */
public class WeatherUtil {
/**
* 对服务器端返回的XML文件流进行解析
*
* @param city
* 用户输入的城市名称
* @return 字符串 用#分割
*/
public String getWeather(String city) {
try {
// 使用Dom解析
Document doc;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
// 获取调用接口后返回的流
InputStream is = getSoapInputStream(city);
doc = db.parse(is);
// xml的元素标签是"<string>值1</string><string>值2</string>……"
NodeList nl = doc.getElementsByTagName("string");
StringBuffer sb = new StringBuffer();
for (int count = 0; count < nl.getLength(); count++)