11package request
22
33import (
4- "net/http"
5- "net/url"
6- "net"
74 "time"
8- "crypto/tls"
5+ "fmt"
6+ "io/ioutil"
7+ "net/url"
98 "strings"
109 "io"
11- "github.com/satori/go.uuid"
10+ "net"
11+ "crypto/tls"
12+ "net/http"
1213 "errors"
13- "io/ioutil"
14- "fmt"
1514)
1615
16+ type Request interface {
17+ Post (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain )
18+ Get (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain )
19+ }
20+
1721type chain struct {
1822 StartTime int64 `json:"start_time"`
1923 EndTime int64 `json:"end_time"`
@@ -22,23 +26,75 @@ type chain struct {
2226 Time time.Duration `json:"time"`
2327}
2428
25- func Post (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
26- return send ("POST" , url , strings .NewReader (params .Encode ()), headers , proxyUrl )
29+ type request struct {}
30+
31+ func NewRequest () (r * request ) {
32+ return & request {}
2733}
2834
29- func Get (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
35+ func (r * request ) Send (method string , url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
36+
37+ var data string
38+
39+ if strings .ToUpper (method ) == "GET" {
40+ if params != nil {
41+ url += "?" + params .Encode ()
42+ }
43+ } else {
44+ if len (params .Get ("" )) > 0 {
45+ data = params .Get ("" )
46+ } else {
47+ data = params .Encode ()
48+ }
49+ }
50+
51+ return send (method , url , strings .NewReader (data ), headers , proxyUrl )
52+ }
53+
54+ func (r * request ) Post (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
55+ var data string
56+ if len (params .Get ("" )) > 0 {
57+ data = params .Get ("" )
58+ } else {
59+ data = params .Encode ()
60+ }
61+ return send ("POST" , url , strings .NewReader (data ), headers , proxyUrl )
62+ }
63+
64+ func (r * request ) Patch (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
65+ var data string
66+ if len (params .Get ("" )) > 0 {
67+ data = params .Get ("" )
68+ } else {
69+ data = params .Encode ()
70+ }
71+ return send ("PATCH" , url , strings .NewReader (data ), headers , proxyUrl )
72+ }
73+
74+ func (r * request ) Get (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
3075 if params != nil {
3176 url += "?" + params .Encode ()
3277 }
3378 return send ("GET" , url , nil , headers , proxyUrl )
3479}
3580
81+ func (r * request ) Put (url string , params url.Values , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
82+ var data string
83+ if len (params .Get ("" )) > 0 {
84+ data = params .Get ("" )
85+ } else {
86+ data = params .Encode ()
87+ }
88+ return send ("PUT" , url , strings .NewReader (data ), headers , proxyUrl )
89+ }
90+
3691func send (method string , httpUrl string , params io.Reader , headers map [string ]string , proxyUrl string ) (body []byte , err error , trans chain ) {
3792
3893 startTime := time .Now ().UnixNano ()
3994
4095 var ch chain
4196
97+ ch .Url = httpUrl
4298 ch .StartTime = startTime
4399
44100 var res * http.Response
@@ -84,17 +140,8 @@ func send(method string, httpUrl string, params io.Reader, headers map[string]st
84140 request .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
85141 }
86142
87- uid , _ := uuid .NewV4 ()
88-
89- workerId := uid .String ()
90-
91- ch .WorkerId = workerId
92-
93- request .Header .Set ("Worker-Id" , workerId )
94- request .Header .Set ("Token-Id" , "X" )
95- request .Header .Set ("Device-Id" , "x.lattecake.com" )
96- request .Header .Set ("Client-System" , "X" )
97143 request .Header .Set ("Client-Time" , time .Unix (0 , time .Now ().UnixNano ()).Format ("2006-01-02 15:04:05.999999" ))
144+ request .Header .Set ("User-Agent" , "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36" )
98145
99146 res , err = client .Do (request )
100147 if err != nil {
0 commit comments