初始
This commit is contained in:
110
api/v1/common/coryCommon/weather.go
Normal file
110
api/v1/common/coryCommon/weather.go
Normal file
@ -0,0 +1,110 @@
|
||||
package coryCommon
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/gogf/gf/v2/net/gclient"
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
)
|
||||
|
||||
var key = "00b60ebda96849e694cb570e3d4f5c89"
|
||||
|
||||
// WeatherRep 返回参数 免费天气查询 https://dev.qweather.com/docs/api/weather/weather-daily-forecast/
|
||||
type WeatherRep struct {
|
||||
Code string `json:"code"`
|
||||
UpdateTime string `json:"updateTime"`
|
||||
FxLink string `json:"fxLink"`
|
||||
Daily []struct {
|
||||
FxDate string `json:"fxDate"`
|
||||
Sunrise string `json:"sunrise"`
|
||||
Sunset string `json:"sunset"`
|
||||
Moonrise string `json:"moonrise"`
|
||||
Moonset string `json:"moonset"`
|
||||
MoonPhase string `json:"moonPhase"`
|
||||
MoonPhaseIcon string `json:"moonPhaseIcon"`
|
||||
TempMax string `json:"tempMax"`
|
||||
TempMin string `json:"tempMin"`
|
||||
IconDay string `json:"iconDay"`
|
||||
TextDay string `json:"textDay"`
|
||||
IconNight string `json:"iconNight"`
|
||||
TextNight string `json:"textNight"`
|
||||
Wind360Day string `json:"wind360Day"`
|
||||
WindDirDay string `json:"windDirDay"`
|
||||
WindScaleDay string `json:"windScaleDay"`
|
||||
WindSpeedDay string `json:"windSpeedDay"`
|
||||
Wind360Night string `json:"wind360Night"`
|
||||
WindDirNight string `json:"windDirNight"`
|
||||
WindScaleNight string `json:"windScaleNight"`
|
||||
WindSpeedNight string `json:"windSpeedNight"`
|
||||
Humidity string `json:"humidity"`
|
||||
Precip string `json:"precip"`
|
||||
Pressure string `json:"pressure"`
|
||||
Vis string `json:"vis"`
|
||||
Cloud string `json:"cloud"`
|
||||
UvIndex string `json:"uvIndex"`
|
||||
} `json:"daily"`
|
||||
Refer struct {
|
||||
Sources []string `json:"sources"`
|
||||
License []string `json:"license"`
|
||||
} `json:"refer"`
|
||||
}
|
||||
|
||||
// Weather 传递经纬度 location := "116.41,39.92"
|
||||
func Weather(location string) (we string) {
|
||||
//请求路径
|
||||
//key := ""
|
||||
requestURL := "https://devapi.qweather.com/v7/weather/3d?location=" + location + "&key=" + key
|
||||
|
||||
response, err := gclient.New().ContentJson().ContentType("application/x-www-form-urlencoded").Get(gctx.New(), requestURL)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var dataInfo = ""
|
||||
dataInfo = response.ReadAllString()
|
||||
return dataInfo
|
||||
}
|
||||
|
||||
type GridPointRes struct {
|
||||
Code string `json:"code"`
|
||||
UpdateTime string `json:"updateTime"`
|
||||
FxLink string `json:"fxLink"`
|
||||
Now struct {
|
||||
ObsTime string `json:"obsTime"`
|
||||
Temp string `json:"temp"`
|
||||
Icon string `json:"icon"`
|
||||
Text string `json:"text"`
|
||||
Wind360 string `json:"wind360"`
|
||||
WindDir string `json:"windDir"`
|
||||
WindScale string `json:"windScale"`
|
||||
WindSpeed string `json:"windSpeed"`
|
||||
Humidity string `json:"humidity"`
|
||||
Precip string `json:"precip"`
|
||||
Pressure string `json:"pressure"`
|
||||
Cloud string `json:"cloud"`
|
||||
Dew string `json:"dew"`
|
||||
} `json:"now"`
|
||||
Refer struct {
|
||||
Sources []string `json:"sources"`
|
||||
License []string `json:"license"`
|
||||
} `json:"refer"`
|
||||
}
|
||||
|
||||
// 格点天气 GridPoint
|
||||
func GridPoint(location string) (gp *GridPointRes, err error) {
|
||||
//请求路径
|
||||
//key := "00b60ebda96849e694cb570e3d4f5c89"
|
||||
requestURL := "https://devapi.qweather.com/v7/grid-weather/now?location=" + location + "&key=" + key
|
||||
|
||||
response, err := gclient.New().ContentJson().ContentType("application/x-www-form-urlencoded").Get(gctx.New(), requestURL)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var dataInfo = ""
|
||||
dataInfo = response.ReadAllString()
|
||||
|
||||
gp = new(GridPointRes)
|
||||
err = json.Unmarshal([]byte(dataInfo), &gp)
|
||||
|
||||
fmt.Println(gp.Now.Icon)
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user