...
1
2
3
4 package otelhttp
5
6 import (
7 "context"
8 "io"
9 "net/http"
10 "net/url"
11 "strings"
12 )
13
14
15
16
17 var DefaultClient = &http.Client{Transport: NewTransport(http.DefaultTransport)}
18
19
20 func Get(ctx context.Context, targetURL string) (resp *http.Response, err error) {
21 req, err := http.NewRequestWithContext(ctx, "GET", targetURL, nil)
22 if err != nil {
23 return nil, err
24 }
25 return DefaultClient.Do(req)
26 }
27
28
29 func Head(ctx context.Context, targetURL string) (resp *http.Response, err error) {
30 req, err := http.NewRequestWithContext(ctx, "HEAD", targetURL, nil)
31 if err != nil {
32 return nil, err
33 }
34 return DefaultClient.Do(req)
35 }
36
37
38 func Post(ctx context.Context, targetURL, contentType string, body io.Reader) (resp *http.Response, err error) {
39 req, err := http.NewRequestWithContext(ctx, "POST", targetURL, body)
40 if err != nil {
41 return nil, err
42 }
43 req.Header.Set("Content-Type", contentType)
44 return DefaultClient.Do(req)
45 }
46
47
48 func PostForm(ctx context.Context, targetURL string, data url.Values) (resp *http.Response, err error) {
49 return Post(ctx, targetURL, "application/x-www-form-urlencoded", strings.NewReader(data.Encode()))
50 }
51
View as plain text