所以我正在尝试编写一个简单的 Web 服务来获取当前天气。使用以下代码可以调用 Web 服务方法并将返回的 XML 数据打印到控制台。
但是,当我尝试解析此方法响应时,我得到 MalformedURLException。我可以在错误中看到我想要解析的 XML。
所以我尝试将响应保存到文件中以这种方式解析它:
当我尝试将网络响应保存到文件时,我得到所有中文字母。System.out.println
将 XML 完美地打印到控制台,就像我需要它在文件中一样。
我是一个完全的新手,所以如果我遗漏了一些非常简单的东西,请原谅我。我想这样做,而不必在本地保存文件,但是在这里任何工作都很好。
我的问题出在这段代码的某个地方:
GlobalWeather service = new GlobalWeather();
GlobalWeatherSoap port = service.getGlobalWeatherSoap();
String data = port.getWeather(city, country);
// this prints the xml response to the console perfectly
System.out.println(data);
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
SAXParser saxParser = spf.newSAXParser();
XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setContentHandler(new WeatherApp());
// this gives MalformedURLexception when set up this way.
// this gives the correct output when passed a locally stored XML file
// I have omitted my SAX methods and my weather class that holds the data
// but all work fine when using a local XML file on my machine.
xmlReader.parse(data);