java獲取天氣的api實現,java獲取天氣預報

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 19:23
下一篇 2024-12-16 19:23

相關推薦

發表回復

登錄後才能評論