最近項目中使用到了天氣預報的功能,須要從網上獲取天氣數據,而後顯示在公司系統的頁面上。前端
在這裏和你們分享下個人作法,但願能對你們有所幫助,若是有錯誤,歡迎你們指正。java
先給你們看看效果:jquery
下面開始進行講解。web
1.找API接口json
首先先去網上找一個免費的天氣API,這裏推薦你們去百度API Store找,有無償使用的。api
我是用的是 ,接口地址是:http://apis.baidu.com/heweather/weather/freewebsocket
2.後臺代碼app
1 package com.byteslounge.websockets; 2 3 import bean.Response; 4 5 import javax.net.ssl.HttpsURLConnection; 6 import java.io.BufferedReader; 7 import java.io.InputStream; 8 import java.io.InputStreamReader; 9 import java.net.HttpURLConnection; 10 import java.net.URL; 11 import java.util.HashMap; 12 import java.util.Map; 13 14 15 public class Weather { 16 17 public static String requests(String httpUrl, String httpArg) { 18 BufferedReader reader = null; 19 String result = null; 20 StringBuffer sbf = new StringBuffer(); 21 httpUrl = httpUrl + "?" + httpArg; 22 23 try { 24 URL url = new URL(httpUrl); 25 HttpURLConnection connection = (HttpURLConnection) url 26 .openConnection(); 27 connection.setRequestMethod("GET"); 28 // 填入apikey到HTTP header 29 connection.setRequestProperty("apikey", "0bc030269671ad02d5730afb5c355b34"); 30 connection.connect(); 31 InputStream is = connection.getInputStream(); 32 reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 33 String strRead = null; 34 while ((strRead = reader.readLine()) != null) { 35 sbf.append(strRead); 36 sbf.append("\r\n"); 37 } 38 reader.close(); 39 result = sbf.toString(); 40 } catch (Exception e) { 41 e.printStackTrace(); 42 } 43 return result; 44 } 45 }
3.前端JSP調用requests()方法socket
1 <% 2 //經過接口獲取天氣當每天氣數據 3 String jsons = new Weather().requests("http://apis.baidu.com/heweather/weather/free", "city=yinzhou"); 4 String json = new Weather().requests("http://apis.baidu.com/heweather/weather/free", "city=ningbo"); 5 %>
jsons裏面的信息:。url
最後你們就能夠使用json對數據進行獲取,再使用jquery將數據放置在頁面上了。這裏給你們推薦個json轉化器,http://c.runoob.com/front-end/53,能夠方便你們進行數據的提取。