解决v5api返回报错问题
This commit is contained in:
parent
99cd468004
commit
a3d7bd22a8
@ -9,7 +9,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"v5sdk_go/rest"
|
// "v5sdk_go/rest"
|
||||||
|
|
||||||
simple "github.com/bitly/go-simplejson"
|
simple "github.com/bitly/go-simplejson"
|
||||||
"github.com/go-redis/redis"
|
"github.com/go-redis/redis"
|
||||||
@ -150,23 +150,12 @@ func IsModOf(curInt int64, duration time.Duration) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (core *Core) SaveCandle(instId string, period string, rsp *rest.RESTAPIResult, dura time.Duration, withWs bool) {
|
func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura time.Duration, withWs bool) {
|
||||||
js, err := simple.NewJson([]byte(rsp.Body))
|
for _, v := range rsp.Data {
|
||||||
if err != nil {
|
|
||||||
fmt.Println("restTicker err: ", err, rsp.Body)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if len(rsp.Body) == 0 {
|
|
||||||
fmt.Println("rsp body is null")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
itemList := js.Get("data").MustArray()
|
|
||||||
Daoxu(itemList)
|
|
||||||
for _, v := range itemList {
|
|
||||||
candle := Candle{
|
candle := Candle{
|
||||||
InstId: instId,
|
InstId: instId,
|
||||||
Period: period,
|
Period: period,
|
||||||
Data: v.([]interface{}),
|
Data: v,
|
||||||
From: "rest",
|
From: "rest",
|
||||||
}
|
}
|
||||||
candle.SetToKey(core)
|
candle.SetToKey(core)
|
||||||
|
26
core/core.go
26
core/core.go
@ -6,6 +6,8 @@ import (
|
|||||||
// "errors"
|
// "errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
// "math/rand"
|
// "math/rand"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -41,7 +43,11 @@ type RestQueue struct {
|
|||||||
Duration time.Duration
|
Duration time.Duration
|
||||||
WithWs bool
|
WithWs bool
|
||||||
}
|
}
|
||||||
|
type CandleData struct {
|
||||||
|
Code string `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data [][]interface{} `json:"data"` // 用二维数组来接收 candles 数据
|
||||||
|
}
|
||||||
type SubAction struct {
|
type SubAction struct {
|
||||||
ActionName string
|
ActionName string
|
||||||
ForAll bool
|
ForAll bool
|
||||||
@ -68,7 +74,7 @@ func (rst *RestQueue) Save(cr *Core) {
|
|||||||
link := "/api/v5/market/candles?instId=" + rst.InstId + "&bar=" + rst.Bar + limitSec + afterSec + beforeSec
|
link := "/api/v5/market/candles?instId=" + rst.InstId + "&bar=" + rst.Bar + limitSec + afterSec + beforeSec
|
||||||
|
|
||||||
fmt.Println("restLink: ", link)
|
fmt.Println("restLink: ", link)
|
||||||
rsp, _ := cr.RestInvoke(link, rest.GET)
|
rsp, _ := cr.v5PublicInvoke(link)
|
||||||
cr.SaveCandle(rst.InstId, rst.Bar, rsp, rst.Duration, rst.WithWs)
|
cr.SaveCandle(rst.InstId, rst.Bar, rsp, rst.Duration, rst.WithWs)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,6 +199,22 @@ func (core *Core) SubscribeTicker(op string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (core *Core) v5PublicInvoke(subUrl string) (*CandleData, error) {
|
||||||
|
restUrl, _ := core.Cfg.Config.Get("connect").Get("restBaseUrl").String()
|
||||||
|
url := restUrl + subUrl
|
||||||
|
resp, err := http.Get(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
var result CandleData
|
||||||
|
if err := json.Unmarshal(body, &result); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &result, nil
|
||||||
|
}
|
||||||
func (core *Core) RestInvoke(subUrl string, method string) (*rest.RESTAPIResult, error) {
|
func (core *Core) RestInvoke(subUrl string, method string) (*rest.RESTAPIResult, error) {
|
||||||
restUrl, _ := core.Cfg.Config.Get("connect").Get("restBaseUrl").String()
|
restUrl, _ := core.Cfg.Config.Get("connect").Get("restBaseUrl").String()
|
||||||
//ep, method, uri string, param *map[string]interface{}
|
//ep, method, uri string, param *map[string]interface{}
|
||||||
|
8
demo.json
Normal file
8
demo.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"code":"0",
|
||||||
|
"msg":"",
|
||||||
|
"data":[
|
||||||
|
["1733224500000","224.35","225.63","224.34","225.39","8181.5288","1841178.04602941","1841178.04602941","1"],
|
||||||
|
["1733223600000","223.25","224.74","222.95","224.36","4643.858629","1040747.41332915","1040747.41332915","1"]
|
||||||
|
]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user