get之前需要post/jssm,需要在一条tcp链接上
golangpackage main
import (
"crypto/tls"
"encoding/json"
"os"
"strconv"
"strings"
"time"
)
func extractContent(data string) string {
splitData := strings.SplitN(data, "\r\n\r\n", 2)
if len(splitData) < 2 {
return ""
}
return splitData[1]
}
type Foo struct {
Data []struct {
Value float64 `json:"value"`
} `json:"data"`
State string `json:"state"`
Status string `json:"status"`
}
func main() {
var ff = make(map[int]int, 0)
for i := 1; i < 6; i++ {
// 创建一个*tls.Config实例
conf := &tls.Config{
InsecureSkipVerify: true,
}
data, err := os.ReadFile("./a")
if err != nil {
panic(err)
}
c, err := tls.Dial("tcp", "match.yuanrenxue.cn:443", conf)
if err != nil {
panic(err)
}
defer c.Close()
c.Write(data)
readData := make([]byte, 102400)
n, err := c.Read(readData)
if err != nil {
panic(err)
}
//println(string(readData[:n]))
data, err = os.ReadFile("./b")
if err != nil {
panic(err)
}
str := string(data)
str = strings.Replace(str, "page=2", "page="+strconv.Itoa(i), 1)
data = []byte(str)
c.Write(data)
time.Sleep(1 * time.Second)
n, err = c.Read(readData)
if err != nil {
panic(err)
}
println(extractContent(string(readData[:n])))
var f Foo
err = json.Unmarshal([]byte(extractContent(string(readData[:n]))), &f)
if err != nil {
panic(err)
}
for _, v := range f.Data {
ff[int(v.Value)]++
}
}
max := 0
maxKey := 0
for k, v := range ff {
if v > max {
max = v
maxKey = k
}
}
println(maxKey)
}
本文作者:mystyouth
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!