-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransport.go
47 lines (37 loc) · 915 Bytes
/
transport.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package flaresolverr
import (
"io"
"net/http"
"strings"
)
func NewTransport(client *Client) *roundTripper {
return &roundTripper{
client: client,
}
}
type roundTripper struct {
client *Client
}
func (r roundTripper) RoundTrip(request *http.Request) (resp *http.Response, err error) {
var rr *RequestResponse
if request.Method == http.MethodGet {
ops := RequestGetOps{}
ops.URL = request.URL.String()
rr, err = r.client.RequestGet(ops)
} else {
ops := RequestPostOps{}
ops.URL = request.URL.String()
rr, err = r.client.RequestPost(ops)
}
resp = &http.Response{}
resp.StatusCode = rr.Solution.Status
resp.Status = http.StatusText(rr.Solution.Status)
resp.Body = io.NopCloser(strings.NewReader(rr.Solution.Response))
for k, v := range rr.Solution.Headers {
resp.Header.Set(k, v)
}
resp.ContentLength = -1
resp.Uncompressed = true
resp.Request = request
return resp, nil
}