package main import ( "bytes" "fmt" "io/ioutil" "net/http" "strconv" "strings" "time" ) func f_send_db(uid int, status int, msg string, url string) bool { // status 1成功 2失败 go f_log_db(uid, status, url+" - "+msg) tx, err := db.Begin() if err != nil { return false } result, err := tx.Exec("update `url` set `status` = ?, `msg` = ? where uid = ?", status, msg, uid) e := tx.Commit() if e != nil { _ = tx.Rollback() return false } if err != nil { fmt.Printf("uid:%d\n", uid) fmt.Println(err) return false } row, err := result.RowsAffected() if err != nil { fmt.Printf("uid:%d\n", uid) fmt.Println(err) return false } if row != 1 { fmt.Printf("uid:%d row update error\n", uid) return false } return true } func f_send(uid int, u string) { client := &http.Client{ Timeout: time.Duration(10 * time.Second), } req, err := http.NewRequest("POST", u, strings.NewReader("reservationid=5000000")) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") // req = req.WithContext(ctx) if err != nil { f_send_db(uid, 2, fmt.Sprintf("%s", err), u) fmt.Println("err newrequest") fmt.Println(err) return } startTime := time.Now() resp, err := client.Do(req) if err != nil { f_send_db(uid, 2, fmt.Sprintf("%s", err), u) fmt.Println("err do") fmt.Println(err) return } defer func() { _ = resp.Body.Close() }() if resp.StatusCode == 200 { fmt.Println("OK") since := time.Since(startTime) fmt.Println(since.Seconds()) } else { fmt.Println("HTTP " + strconv.Itoa(resp.StatusCode)) f_send_db(uid, 2, "HTTP "+strconv.Itoa(resp.StatusCode), u) return } fmt.Println("body") body, _ := ioutil.ReadAll(resp.Body) s := string(body) fmt.Println(s) if strings.Contains(s, "Unicorn Access Code: NSWMCHZZsDmTLLGkmFiFupdLG") && strings.Contains(s, "Unicorn.Rentals_v") && strings.Contains(s, "Reservation Name: Miss Alba Schiller") { // 匹配成功 f_send_db(uid, 1, "结果匹配成功", u) } else { f_send_db(uid, 2, "结果不匹配", u) } } // backup func f_send_get(uid int, url string) { client := &http.Client{ Timeout: time.Duration(10 * time.Second), } req, err := http.NewRequest("GET", url+"/calc", nil) // req = req.WithContext(ctx) if err != nil { f_send_db(uid, 2, fmt.Sprintf("%s", err), url) fmt.Println("err newrequest") fmt.Println(err) return } startTime := time.Now() resp, err := client.Do(req) if err != nil { f_send_db(uid, 2, fmt.Sprintf("%s", err), url) fmt.Println("err do") fmt.Println(err) return } defer func() { _ = resp.Body.Close() }() if resp.StatusCode == 200 { fmt.Println("OK") since := time.Since(startTime) fmt.Println(since.Seconds()) } else { fmt.Println("HTTP " + strconv.Itoa(resp.StatusCode)) f_send_db(uid, 2, "HTTP "+strconv.Itoa(resp.StatusCode), url) return } fmt.Println("body") body, _ := ioutil.ReadAll(resp.Body) s := string(body) if s == "Yj2l9tCHfZMh2fcZz2ssuog19az/jnU0PjDXJNRGqQ==" { // 匹配成功 f_send_db(uid, 1, "结果匹配成功", url) } else { f_send_db(uid, 2, "结果不匹配", url) } // fmt.Println(s) //if s == "TODO: Create a nice looking homepage." { // fmt.Println(1) //} //fmt.Printf("%s\n", s) } func send(url string) { defer wg.Done() timeout := time.Duration(60 * time.Second) client := &http.Client{ Timeout: timeout, } req, err := http.NewRequest("GET", url, nil) if err != nil { fmt.Println(err) return } startTime := time.Now() resp, err := client.Do(req) if err != nil { fmt.Println(err) return } defer func() { _ = resp.Body.Close() }() if resp.StatusCode == 200 { fmt.Println("OK") since := time.Since(startTime) fmt.Println(since.Seconds()) } else { fmt.Println("HTTP " + strconv.Itoa(resp.StatusCode)) } //body, _ := ioutil.ReadAll(resp.Body) //s := string(body) //if s == "TODO: Create a nice looking homepage." { // fmt.Println(1) //} //fmt.Printf("%s\n", s) } func sendPost(url string, msg string) { defer wg.Done() timeout := time.Duration(60 * time.Second) client := &http.Client{ Timeout: timeout, } req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte("{\"msg\":\"1\"}"))) req.Header.Set("Content-Type", "application/json") if err != nil { fmt.Println(err) return } startTime := time.Now() resp, err := client.Do(req) if err != nil { fmt.Println(err) return } defer func() { _ = resp.Body.Close() }() if resp.StatusCode == 200 { fmt.Println("OK") since := time.Since(startTime) fmt.Println(since.Seconds()) } else { // body, _ := ioutil.ReadAll(resp.Body) // fmt.Println(string(body)) fmt.Println("HTTP " + strconv.Itoa(resp.StatusCode)) } body, _ := ioutil.ReadAll(resp.Body) s := string(body) //if s == "TODO: Create a nice looking homepage." { // fmt.Println(1) //} fmt.Printf("%s\n", s) }