解决v5api返回报错问题
This commit is contained in:
parent
99cd468004
commit
a3d7bd22a8
@ -9,7 +9,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"v5sdk_go/rest"
|
||||
// "v5sdk_go/rest"
|
||||
|
||||
simple "github.com/bitly/go-simplejson"
|
||||
"github.com/go-redis/redis"
|
||||
@ -150,23 +150,12 @@ func IsModOf(curInt int64, duration time.Duration) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (core *Core) SaveCandle(instId string, period string, rsp *rest.RESTAPIResult, dura time.Duration, withWs bool) {
|
||||
js, err := simple.NewJson([]byte(rsp.Body))
|
||||
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 {
|
||||
func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura time.Duration, withWs bool) {
|
||||
for _, v := range rsp.Data {
|
||||
candle := Candle{
|
||||
InstId: instId,
|
||||
Period: period,
|
||||
Data: v.([]interface{}),
|
||||
Data: v,
|
||||
From: "rest",
|
||||
}
|
||||
candle.SetToKey(core)
|
||||
|
26
core/core.go
26
core/core.go
@ -6,6 +6,8 @@ import (
|
||||
// "errors"
|
||||
"fmt"
|
||||
// "math/rand"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -41,7 +43,11 @@ type RestQueue struct {
|
||||
Duration time.Duration
|
||||
WithWs bool
|
||||
}
|
||||
|
||||
type CandleData struct {
|
||||
Code string `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data [][]interface{} `json:"data"` // 用二维数组来接收 candles 数据
|
||||
}
|
||||
type SubAction struct {
|
||||
ActionName string
|
||||
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
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
@ -193,6 +199,22 @@ func (core *Core) SubscribeTicker(op string) error {
|
||||
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) {
|
||||
restUrl, _ := core.Cfg.Config.Get("connect").Get("restBaseUrl").String()
|
||||
//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