java调用中国天气网api获得天气预报信息的方法
本文实例讲述了java调用中国天气网api获得天气预报信息的方法。分享给大家供大家参考。具体实现方法如下:
//以冰城哈尔滨为例通过中国天气api调用天气信息
privateStringgetWeatherInfo2(){
StringBuilderinfo=newStringBuilder();
try{
DefaultHttpClienthttpclient=newDefaultHttpClient();
HttpGethttget=newHttpGet("http://m.weather.com.cn/data/101050101.html");
ResponseHandler<String>responseHandler=newBasicResponseHandler();
StringresponseBody=httpclient.execute(httget,responseHandler);
System.out.println(responseBody);
JsonParserjp=newJsonParser();
JsonElementjse=jp.parse(responseBody);
JsonObjectjso=jse.getAsJsonObject().get("weatherinfo").getAsJsonObject();
//StringupdTime=jso.get("fchh").getAsString();
//if(updTime!=null){
////温度
//Stringj=jso.get("temp1").getAsString();//今天
//Stringm=jso.get("temp2").getAsString();//明天
////天气情况
//Stringj_weather=jso.get("weather1").getAsString();//今天
//Stringm_weather=jso.get("weather2").getAsString();//明天
////风向风力
//Stringj_wind=jso.get("wind1").getAsString();//今天
//Stringm_wind=jso.get("wind2").getAsString();//明天
//info.append("今天:").append(j).append("").append(j_weather).append("").append(j_wind).append("\n");
//info.append("明天:").append(m).append("").append(m_weather).append("").append(m_wind).append("\n");
//}
StringupdTime=jso.get("fchh").getAsString();
if(updTime!=null){
if(!updTime.trim().equals("18")){
//温度
Stringj=jso.get("temp1").getAsString();//今天
Stringm=jso.get("temp2").getAsString();//明天
//天气情况
Stringj_weather=jso.get("weather1").getAsString();//今天
Stringm_weather=jso.get("weather2").getAsString();//明天
//风向风力
Stringj_wind=jso.get("wind1").getAsString();//今天
Stringm_wind=jso.get("wind2").getAsString();//明天
info.append("今天:").append(j).append("").append(j_weather).append("").append(j_wind).append("\n");
info.append("明天:").append(m).append("").append(m_weather).append("").append(m_wind).append("\n");
}else{
//18
//温度
Stringtemp1=jso.get("temp1").getAsString();//今天
Stringtemp2=jso.get("temp2").getAsString();//今天
Stringtemp3=jso.get("temp3").getAsString();//今天
Stringj=temp1.split("~")[1]+"~"+temp2.split("~")[0];
Stringm=temp2.split("~")[1]+"~"+temp3.split("~")[0];//明天
//天气情况
Stringweather1=jso.get("weather1").getAsString();
Stringweather2=jso.get("weather2").getAsString();
Stringweather3=jso.get("weather3").getAsString();
Stringj_weather="";
Stringj_weather_part1="";
Stringj_weather_part2="";
//判断是否有转
if(weather1.indexOf("转")>0){
//有
j_weather_part1=weather1.split("转")[1];
}else{
j_weather_part1=weather1;
}
if(weather2.indexOf("转")>0){
//有
j_weather_part2=weather2.split("转")[0];
}else{
j_weather_part2=weather2;
}
if(j_weather_part1.equalsIgnoreCase(j_weather_part2)){
j_weather=j_weather_part1;//今天
}else{
j_weather=j_weather_part1+"转"+j_weather_part2;//今天
}
Stringm_weather="";
Stringm_weather_part1="";
Stringm_weather_part2="";
//判断是否有转
if(weather2.indexOf("转")>0){
//有
m_weather_part1=weather2.split("转")[1];
}else{
m_weather_part1=weather2;
}
if(weather3.indexOf("转")>0){
//有
m_weather_part2=weather3.split("转")[0];
}else{
m_weather_part2=weather3;
}
if(m_weather_part1.equalsIgnoreCase(m_weather_part2)){
m_weather=m_weather_part1;//今天
}else{
m_weather=m_weather_part1+"转"+m_weather_part2;//明天
}
//风向风力
Stringj_wind=jso.get("wind2").getAsString();//今天
Stringm_wind=jso.get("wind3").getAsString();//明天
info.append("今天:").append(j).append("").append(j_weather).append("").append(j_wind).append("\n");
info.append("明天:").append(m).append("").append(m_weather).append("").append(m_wind).append("\n");
}
}
}catch(Exceptione){
}
returninfo.toString();
}
希望本文所述对大家的java程序设计有所帮助。