获取天气方式很多,整理一下个人感觉最方便的一个
1.引入maven
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.2</version>
</dependency>
2.代码
import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class Weather {
public static String getTemp() throws IOException {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("http://d1.weather.com.cn/sk_2d/101120101.html")
.method("GET", null)
.addHeader("Referer", "http://www.weather.com.cn/")
.build();
Response response = client.newCall(request).execute();
String body = response.body().string();
//去除多余字符串
body = body.substring(body.indexOf('{'));
JSONObject jsonObject = JSONObject.parseObject(body);
System.out.println(jsonObject.getString("cityname")+"= " + jsonObject.getString("temp"));
return jsonObject.getString("temp");
}
}
3.建表语句
CREATE TABLE `weather` (
`id` varchar(36) NOT NULL,
`city_name` varchar(32) DEFAULT NULL COMMENT '城市名称',
`city` varchar(32) DEFAULT NULL COMMENT '城市编码',
`temp` int(11) DEFAULT NULL COMMENT '温度',
`tempf` int(11) DEFAULT NULL COMMENT '华氏度',
`wd` varchar(32) DEFAULT NULL COMMENT '风向',
`ws` varchar(32) DEFAULT NULL COMMENT '风力',
`wse` varchar(32) DEFAULT NULL COMMENT '风速',
`sd` varchar(32) DEFAULT NULL COMMENT '湿度',
`date_time` datetime DEFAULT NULL COMMENT '日期时间',
`weather` varchar(32) DEFAULT NULL COMMENT '天气',
`qy` varchar(32) DEFAULT NULL COMMENT '气压',
`njd` varchar(32) DEFAULT NULL COMMENT '能见度',
`rain` decimal(10,2) DEFAULT NULL COMMENT '降雨量',
`rain24h` decimal(10,2) DEFAULT NULL COMMENT '降雨量24小时',
`aqi` int(11) DEFAULT NULL COMMENT '空气质量',
`limitnumber` varchar(32) DEFAULT NULL COMMENT '限号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
是不是看上去很简单,其实就是很简单。