本文目錄一覽:
java調用天氣預報api怎麼寫
//通過中國天氣api調用
private String getWeatherInfo2(){
StringBuilder info = new StringBuilder();
try {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httget = new HttpGet(“”);
ResponseHandlerString responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httget, responseHandler);
System.out.println(responseBody);
JsonParser jp = new JsonParser();
JsonElement jse = jp.parse(responseBody);
JsonObject jso = jse.getAsJsonObject().get(“weatherinfo”).getAsJsonObject();
// String updTime = jso.get(“fchh”).getAsString();
// if(updTime != null){
// //溫度
// String j = jso.get(“temp1”).getAsString();//今天
// String m = jso.get(“temp2”).getAsString();//明天
// //天氣情況
// String j_weather = jso.get(“weather1”).getAsString();//今天
// String m_weather = jso.get(“weather2”).getAsString();//明天
// //風向風力
// String j_wind = jso.get(“wind1”).getAsString();//今天
// String m_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”);
// }
String updTime = jso.get(“fchh”).getAsString();
if(updTime != null){
if(!updTime.trim().equals(“18”)){
//溫度
String j = jso.get(“temp1”).getAsString();//今天
String m = jso.get(“temp2”).getAsString();//明天
//天氣情況
String j_weather = jso.get(“weather1”).getAsString();//今天
String m_weather = jso.get(“weather2”).getAsString();//明天
//風向風力
String j_wind = jso.get(“wind1”).getAsString();//今天
String m_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
//溫度
String temp1 = jso.get(“temp1”).getAsString();//今天
String temp2 = jso.get(“temp2”).getAsString();//今天
String temp3 = jso.get(“temp3”).getAsString();//今天
String j = temp1.split(“~”)[1] + “~” + temp2.split(“~”)[0];
String m = temp2.split(“~”)[1] + “~” + temp3.split(“~”)[0];//明天
//天氣情況
String weather1 = jso.get(“weather1”).getAsString();
String weather2 = jso.get(“weather2”).getAsString();
String weather3 = jso.get(“weather3”).getAsString();
String j_weather = “”;
String j_weather_part1 = “”;
String j_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;//今天
}
String m_weather = “”;
String m_weather_part1 = “”;
String m_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;//明天
}
//風向風力
String j_wind = jso.get(“wind2”).getAsString();//今天
String m_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 (Exception e) {
}
return info.toString();
}
開發個java servlet 介面,主要是處理用戶查詢天氣預報的請求,返回相應的結果。
簡單的方法,可以直接在servlet的doGet或doPost裡面構建這個xml,然後寫迴響應就可以了。
需要搭建java應用伺服器如tomcat伺服器,運行這個servlet就可以。
xml的構建對於Java來說工具很多,JDOM, Dom4J等。
如果客戶端要求用web service方式提供,就考慮Apache CXF這些Java Web服務框架,不過一般沒必要的。
如何用java遠程訪問天氣預報介面
連接中央氣象台的API URL url = new URL(“” + Cityid + “.html”); URLConnection connectionData = url.openConnection(); connectionData.setConnectTimeout(1000);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271682.html