VBMAN 天气预报实例
概述
这是一个天气预报查询实例,通过调用天气预报查询接口,获取天气预报信息,并播放央视解说视频。
项目结构
下载源码 [ 注意:重新到bin
目录注册 DLL 文件 ]
代码请到首页下载VBMAN 项目,解压后,打开包含所有DEMO项目。
Weather/
├── Form1.frm # 主窗体,包含服务器启动代码
└── Weather.vbp # VB6项目文件
核心代码解析
1. 主窗体(Form1.frm)
vb
Private Sub Command1_Click()
'城市id,
Dim id$: id = Text4.Text
'通过城市名称查询城市id的接口
Const areaid$ = "https://i.tq121.com.cn/j/wap2016/news/city_search_data.js?20220422"
'全国天气预报视频和区域
Const videos$ = "https://e.weather.com.cn/pubm/videos_vms1.htm?callback=getLbDatas&_=1747888658520"
Dim area$: area = "https://e.weather.com.cn/p/site/aqifc1h?areaid=" & id & "&callback=aqifc1h&_=1747888658537"
'城市当前天气预报
Dim tq$: tq = "https://d1.weather.com.cn/sk_2d/" & id & ".html?_=1747889185006"
'城市一周天气
Dim week$: week = "https://d1.weather.com.cn/weixinfc/" & id & ".html?_=1747889185007"
'城市天气概览
Dim sum$: sum = "https://d1.weather.com.cn/weather_index/" & id & ".html?_=1747889185008"
'一句话调用
'Text1.Text = VBMAN.HttpClient.Fetch(ReqGet, videos).ReturnJson().Encode(, 2, True)
'分段调用
With VBMAN.HttpClient.Fetch(ReqGet, videos).ReturnJson()
Text1.Text = .Encode(, 2, True) '显示文本内容
Dim url$: url = .Root("documents")(1)("videourl")(1)("url")
WindowsMediaPlayer1.url = url '播放天气预报视频
End With
'城市天气预报均需要添加“引用”头 ^"referer: https://e.weather.com.cn/^" ^
With VBMAN.HttpClient
.RequestHeaders("referer") = "https://e.weather.com.cn/"
'获取当前城市的天气数据
With .Fetch(ReqGet, tq).ReturnJson()
Label1.Caption = .Root("cityname") & " 当前气温:" & .Root("temp") & " 度"
Text2.Text = .Encode(, 2, True)
End With
'获取城市对于的id数据
Text3.Text = .Fetch(ReqGet, areaid).ReturnText()
End With
End Sub
功能说明
- 接口列表
- 通过城市名称查询城市id的接口
- 获取城市id数据
- 获取天气预报视频和区域
- 获取城市当前天气预报
- 获取城市一周天气
- 获取城市天气概览
- 效果截图
技术要点
- VBMAN 库提供了 HttpClient 类,用于处理 HTTP 请求。
- 通过 HttpClient 类的 Fetch 方法可以发送 HTTP 请求,并返回响应结果。
- 可以使用 Fetch 方法的 ReturnJson 方法将响应结果转换为 JSON 对象,并进行后续处理。
- 可以使用 Fetch 方法的 ReturnText 方法将响应结果转换为文本,并进行后续处理。
- 可以使用 HttpClient 类的 RequestHeaders 属性添加请求头,如添加 Referer 头。
- 可以使用 Json 类的 Root 方法获取 JSON 对象的根节点,并使用 Root 方法获取指定节点的值。
- 可以使用 Json 类的 Encode 方法将 JSON 对象转换为文本,并设置缩进和换行符。
- 可以使用 WindowsMediaPlayer 控件播放视频。
扩展建议
- 可以添加更多的城市查询功能,如添加城市列表,用户输入城市名称后查询城市id,并显示天气预报。
- 可以添加更多的天气预报功能,如添加天气预报列表,用户选择城市后查询天气预报。
- 可以添加更多的天气预报查询功能,如添加天气预报查询列表,用户选择城市后查询天气预报。