1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package yu_okx
- import (
- "encoding/json"
- yu_const "gogs.qqck.cn/s/tools/const"
- yu_curl "gogs.qqck.cn/s/tools/curl"
- yu_fast "gogs.qqck.cn/s/tools/fast"
- yu_hex "gogs.qqck.cn/s/tools/hex"
- yu_json "gogs.qqck.cn/s/tools/json"
- yu_rand "gogs.qqck.cn/s/tools/rand"
- yu_strconv "gogs.qqck.cn/s/tools/strconv"
- "time"
- )
- type V5Priapi struct {
- host string
- curl *yu_curl.Request
- }
- func NewV5Priapi() (t *V5Priapi) {
- t = &V5Priapi{}
- j_bootid := make([]byte, 36)
- yu_rand.Rand.ReadEx(j_bootid, yu_const.HexLowerBytes)
- j_bootid[8], j_bootid[13], j_bootid[18], j_bootid[23] = '-', '-', '-', '-'
- j_bootid_s := yu_fast.B2S(j_bootid)
- t.host = "https://www.okx.ac"
- t.curl = yu_curl.NewRequest()
- t.curl.SetHeader("change", "1")
- t.curl.SetUserAgent("OKEx-guanwang/6.72.1 (V1916A; U; Android 9; zh-CN;) locale=zh-CN")
- t.curl.SetHeader("devid", j_bootid_s)
- t.curl.SetHeader("platform", "android")
- t.curl.SetHeader("real-app-version", "6.72.1")
- t.curl.SetHeader("x-utc", "+08:00")
- t.curl.SetHeader("fingerprint-id", j_bootid_s)
- t.curl.SetHeader("risk-params", "fingerprint-id="+j_bootid_s+"&session-id="+j_bootid_s+"_app_start_"+yu_strconv.FormatInt64(time.Now().UnixMilli()))
- t.curl.SetHeader("lua-version", "6.73.2")
- t.curl.SetHeader("app_web_mode", "pro")
- t.curl.SetHeader("x-id", yu_hex.Lower(yu_rand.Bytes(16))) // 3457f9e63a8ecee647b3b3a61fdddc1d
- return
- }
- func (t *V5Priapi) Close() {
- t.curl.Close()
- }
- // SetProxy 设置代理
- //
- // @Description:
- // @param proxy 格式 ProxyType://user:pass@host:port,ProxyType: http, socks4, socks4a, socks5, socks5h,设置为""以取消代理
- func (t *V5Priapi) SetProxy(proxy string) *V5Priapi {
- t.curl.SetProxy(proxy)
- return t
- }
- func (t *V5Priapi) request(method string, path string, post any, resp any) bool {
- switch method {
- case "GET":
- t.curl.Get(t.host + path)
- case "POST":
- j_json, j_err := json.Marshal(post)
- if j_err != nil {
- return false
- }
- t.curl.Post(t.host+path, j_json)
- }
- if t.curl.RespStatusCode() != 200 {
- return false
- }
- if resp == nil {
- return true
- }
- // Code string `json:"code"`
- // Msg string `json:"msg"`
- // Data any `json:"data"`
- // println(t.curl.RespBodyS())
- j_data := yu_json.GetBytes(t.curl.RespBody(), "data").String()
- if j_data == "" {
- return false
- }
- return json.Unmarshal(yu_fast.S2B(j_data), resp) == nil
- }
|