我正在一个项目上,我正在创建一个Java应用程序来给植物浇水。从网上获取天气信息并基于该输出获取天气信息的想法应该是我们的植物是否需要水。对于天气信息,我发现了一个我使用API OpenWeatherMap API并尝试使用YouTube上的教育视频来实现它。我以前没有使用API的经验。我正在使用的视频是“ https://www.youtube.com/watch?v=og5h5ppwXgU”。我试图以与男生相同的方式来实现我的程序,但是我没有得到任何输出。它只是打印出打印语句中的内容,而不是实际数据。 / p>
public static Map<String,Object> jsonToMap(String str){
Map<String,Object> map = new Gson().fromJson(str,new
TypeToken<HashMap<String,Object>> () {}.getType());
return map;
}
public static void main(String[] args) {
String API_KEY = "16 digit Private Key";
String LOCATION = "Los Angeles,CA";
String urlString = "http://api.openweathermap.org/data/2.5/weather?
q=" + LOCATION + "&appid=" + API_KEY + "&units =imperial";
try{
StringBuilder result = new StringBuilder();
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader (conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null){
result.append(line);
}
rd.close();
System.out.println(result);
Map<String,Object > respMap = jsonToMap (result.toString());
Map<String,Object > mainmap = jsonToMap (respMap.get("main").toString());
Map<String,Object > windMap = jsonToMap (respMap.get("wind").toString());
System.out.println("Current Temperature: " + mainmap.get("temp") );
System.out.println("Current Humidity: " + mainmap.get("humidity") );
System.out.println("Wind Speed: " + windMap.get("speed") );
System.out.println("Wind Angle: " + windMap.get("deg") );
}catch (IOException e){
System.out.println(e.getMessage());
}
}
我收到了gson库不存在的错误,但是在用javadoc,类路径和源在net bean中创建了自己的库之后,问题解决了,所以我认为是正确的。openweathermap的API密钥是也有效。我只是无法获取代码来获取在线信息。
输出:
http://api.openweathermap.org/data/2.5/weatherq=Los安吉利斯,CA&appid =“ 16位数字私钥”&units =英制
预期产量:洛杉矶当前天气信息