一个简单的本地测试秒杀的脚本
package main
import (
"encoding/csv"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"
"strings"
"sync"
)
func main() {
var wg sync.WaitGroup
url2 := "your.api.url"
// 读取CSV文件,这里面生成了访问的token
file, err := os.Open("test_member_local.csv")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
reader := csv.NewReader(file)
tokens, err := reader.ReadAll()
if err != nil {
fmt.Println(err)
return
}
// 设置POST参数
data := url.Values{}
data.Set("product_id", "3")
data.Set("address_id", "798")
data.Set("address", "广东省深圳市南山区街道123号")
data.Set("receiver_name", "qwqqwqw")
data.Set("receiver_phone", "qwqqwqw")
data.Set("use_balance", "1")
data.Set("use_coupon", "0")
data.Set("coupon_user_get_id", "0")
data.Set("pay_channel", "")
type Response struct {
Data struct {
Code int `json:"code"`
} `json:"data"`
}
// 创建HTTP客户端
client := &http.Client{}
for k, token := range tokens {
if k == 0 {
continue
}
fmt.Println()
wg.Add(1)
go func(token string) {
defer wg.Done()
// 创建HTTP请求
req, err := http.NewRequest("POST", url2, strings.NewReader(data.Encode()))
if err != nil {
fmt.Println(err)
return
}
// 设置请求头部
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
req.Header.Add("Authorization", "Bearer "+token)
// 发送HTTP请求
resp, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}(token[4])
}
wg.Wait()
}
版本:go1.9
运行环境:windows
本作品采用《CC 协议》,转载必须注明作者和本文链接