package lib import ( "encoding/json" "fmt" "io/ioutil" "net/http" ) func yidong_token() (string,bool) { url := "https://api.iot.10086.cn/v5/ec/get/token?transid=851AIOT202204251553361888100000003&password=L44tB,J5EQhj&appid=851AIOT2022042515533618881&refresh=0" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return "",false } res, err := client.Do(req) if err != nil { fmt.Println(err) return "",false } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return "",false } fmt.Println(string(body)) type Token struct { Token string `json:"token"` } type TestJson struct { Result []Token `json:"result"` } var c TestJson err = json.Unmarshal(body, c) if err := json.Unmarshal([]byte(body), &c); err != nil { fmt.Println("Error =", err) } fmt.Println("bodyjson:",c) //dd := c["result"] if(len(c.Result) == 0){ return "",false } fmt.Println("Token:",c.Result[0].Token) return c.Result[0].Token,true } // 实时查询群组本月套餐内GPRS流量使用量信息。 type FlowPoolSharingInfo struct { TotalAmount string `json:"totalAmount"` RemainAmount string `json:"remainAmount"` UseAmount string `json:"useAmount"` } func Yidong_group_data_margin() (FlowPoolSharingInfo,bool) { token,token_is := yidong_token() if !token_is{ return FlowPoolSharingInfo{},false } url := "https://api.iot.10086.cn/v5/ec/query/group-data-margin?transid=851AIOT202204251553361888100000003&token="+token+"&groupId=9921000021089000" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return FlowPoolSharingInfo{},false } res, err := client.Do(req) if err != nil { fmt.Println(err) return FlowPoolSharingInfo{},false } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return FlowPoolSharingInfo{},false } fmt.Println(string(body)) type List_data struct { FlowPoolSharingInfo []FlowPoolSharingInfo `json:"flowPoolSharingInfo"` } type TestJson struct { Result []List_data `json:"result"` } var c TestJson err = json.Unmarshal(body, c) if err := json.Unmarshal([]byte(body), &c); err != nil { fmt.Println("Error =", err) } fmt.Println("bodyjson:",c) //dd := c["result"] if(len(c.Result) == 0){ return FlowPoolSharingInfo{},false } //fmt.Println("Token:",c.Result[0].UseAmount) return c.Result[0].FlowPoolSharingInfo[0],true } // 实时查询物联卡本月套餐内流量使用量。 func yidong_sim_data_usage(msisdn string) (string,bool) { token,token_is := yidong_token() if !token_is{ return "",false } url := "https://api.iot.10086.cn/v5/ec/query/sim-data-usage?transid=851AIOT202204251553361888100000003&token="+token+"&msisdn="+msisdn method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return "",false } res, err := client.Do(req) if err != nil { fmt.Println(err) return "",false } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return "",false } fmt.Println(string(body)) type List_data struct { DataAmount string `json:"dataAmount"` } type TestJson struct { Result []List_data `json:"result"` } var c TestJson err = json.Unmarshal(body, c) if err := json.Unmarshal([]byte(body), &c); err != nil { fmt.Println("Error =", err) } fmt.Println("bodyjson:",c) //dd := c["result"] if(len(c.Result) == 0){ return "",false } //fmt.Println("Token:",c.Result[0].UseAmount) return c.Result[0].DataAmount,true } // // //flowPoolSharingInfo,_ := yidong_group_data_margin() //println("总量:",flowPoolSharingInfo.RemainAmount) //println("使用:",flowPoolSharingInfo.RemainAmount) //println("剩余:",flowPoolSharingInfo.RemainAmount) // //sim_data_usage,_ := yidong_sim_data_usage("1440761145498") //println("单卡使用量:",sim_data_usage)