/**
* 天气预报查询
* @param cityName 市级别城市名称的拼音,如郑州市是 cityName = zhengzhou
* @return
*/
@Override
public ResponseData<Map<String, Object>> getInformation(String cityName) {
Map<String, Object> weaterData = new HashMap<>();
HttpURLConnection connection = null;
BufferedReader reader = null;
String line = null;
try {
URL url = new URL("https://api.seniverse.com/v3/weather/now.json?key=SOPHrIST8uT3owo5o&location=" +
cityName+"&language=zh-Hans&unit=c");
connection = (HttpURLConnection) url.openConnection();// 根据URL生成HttpURLConnection
connection.setRequestMethod("GET");// 默认GET请求
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.connect();// 建立TCP连接
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求
StringBuilder result = new StringBuilder();
// 循环读取流
while ((line = reader.readLine()) != null) {
result.append(line).append(System.getProperty("line.separator"));// "\n"
}
result.toString();
JSONArray temp = JSONArray.parseArray("["+result.toString()+"]");
JSONObject obj = (JSONObject) temp.get(0);
JSONArray temp2 = JSONArray.parseArray(obj.getString("results"));
weaterData = (JSONObject) temp2.get(0);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
connection.disconnect();
}
return ResponseData.success(weaterData);
}
|