如何修复 java 网络客户端服务(天气)return 未知字符

How to fix java web client services (weather) return unknown characters

import net.webservicex.WeatherForecasts;

public class WeatherForecast {

    public static void main(String[] args) {
        try{
        String zip = "60000";   //its Ankara/Turkey zip code
        System.out.println("Min Temp : " +  getWeatherByZipCode(zip));

如果这样写我会得到:

  Min Temp : net.webservicex.WeatherForecasts@515669        

当我添加此代码以使用摄氏温度获取温度时,我得到 no data found!:

 System.out.println("Max Temp : " +  getWeatherByZipCode(zip).getDetails().getWeatherData().get(0).getMaxTemperatureC());

        }catch(Exception x){
            System.out.println("Coonection Failed! ");
            x.getMessage();
        }
    }

    private static WeatherForecasts getWeatherByZipCode(java.lang.String zipCode) {
        net.webservicex.WeatherForecast service = new net.webservicex.WeatherForecast();
        net.webservicex.WeatherForecastSoap port = service.getWeatherForecastSoap();
        return port.getWeatherByZipCode(zipCode);
    }
}

U can see more details here

您可以使用另一种方式获取天气数据,如下所示:从 Web 服务器获取 xml 并解析它....

       private static Document loadTestDocument(String url) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        return factory.newDocumentBuilder().parse(new URL(url).openStream());
    }
       Document doc = loadTestDocument("http://www.mgm.gov.tr/ftpdata/analiz/sonsoa.xml");
                doc.getDocumentElement().normalize();
                NodeList nList = doc.getElementsByTagName("SOA");

                for (int i = 0; i < nList.getLength(); i++) {
                    Node nNode = nList.item(i);

                    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    }

                    eElement = (Element) nNode;
                    if (cmb.getSelectedIndex() >= 1) {
                        x = cmb.getSelectedIndex() - 1;
                        bolgesnc.setText(eElement.getElementsByTagName("Bolge").item(x).getTextContent());

                    } else {
                        Clear();
                        changeImage(localweather);
                    }

                }
            } catch (IOException ex) {
                conn.setText(" Status : disconnected. Please check your internet connection !!");
            } catch (Exception ex) {
            Logger.getLogger(CoderWeather.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

    }