用java的方式封装了一个天气的接口,查询了好多,都是要收费的,但是还是有免费的方式,
这块我用的是和风天气的接口封装的方法如下:
/**
*
* 获取实时天气1<br>
* 方 法 名: getTodayWeather <br>
*
* @param Cityid 城市名
*
*/ 注:参数字符串,如果拼接在请求链接之后,需要对中文进行 URLEncode 字符集 UTF-8,转化方式在下面,直接传过去就好了
public static Map<String, Object> getTodayWeather1(String Cityid)
throws IOException, NullPointerException {
// 连接和风天气的API
String url1= "https://free-api.heweather.net/s6/weather/now?location="+Cityid+"&key=3c3fa198cacc4152b94b20def11b2455";
URL url = new URL(url1);
URLConnection connectionData = url.openConnection();
connectionData.setConnectTimeout(1000);
Map<String, Object> map = new HashMap<String, Object>();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
connectionData.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null)
sb.append(line);
String datas = sb.toString();
//截取[]转化为json格式
datas = datas.replace(datas.substring(datas.indexOf(":")+1,datas.indexOf(":")+2),"");
datas = datas.replace(datas.substring(datas.length()-2,datas.length()-1),"");
JSONObject jsonData = JSONObject.fromObject(datas);
JSONObject info = jsonData.getJSONObject("HeWeather6");
JSONObject jsonData1 = JSONObject.fromObject(info.getString("basic").toString());
JSONObject jsonData2 = JSONObject.fromObject(info.getString("update").toString());
JSONObject jsonData3 = JSONObject.fromOb