天气API接口的使用

时间:2024-04-16 14:05:41

最近项目中使用到了天气预报的功能,需要从网上获取天气数据,然后显示在公司系统的页面上。

在这里和大家分享下我的做法,希望能对大家有所帮助,如果有错误,欢迎大家指正

先给大家看看效果:

 

下面开始进行讲解。

1.找API接口

首先先去网上找一个免费的天气API,这里推荐大家去百度API Store找,有免费使用的。

我是用的是    ,接口地址是:http://apis.baidu.com/heweather/weather/free

 

2.后台代码

 

 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()方法

 

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里面的信息:

 

最后大家就可以使用json对数据进行获取,再使用jquery将数据放置在页面上了。这里给大家推荐个json转化器,http://c.runoob.com/front-end/53,可以方便大家进行数据的提取。