| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package ga
- import (
- "net/http"
- "net/url"
- "strings"
- "github.com/pkg/errors"
- )
- const gaURL = "https://www.google-analytics.com/collect"
- var httpClient = &http.Client{}
- func send(qs string) error {
- req, err := http.NewRequest(http.MethodPost, gaURL, strings.NewReader(qs))
- if err != nil {
- return errors.Wrap(err, "could not create request")
- }
- // https://golang.org/pkg/net/http/#Client.Do
- // On error, any Response can be ignored. A non-nil Response with a non-nil error only occurs when
- // CheckRedirect fails, and even then the returned Response.Body is already closed.
- resp, err := httpClient.Do(req)
- if err != nil {
- return errors.Wrap(err, "could not make request")
- }
- defer resp.Body.Close()
- return nil
- }
- func concatURLValues(v1 url.Values, v2 url.Values) {
- for key, values := range v2 {
- if len(v2.Get(key)) != 0 && len(v1.Get(key)) == 0 {
- // do not replace existed key
- v1[key] = values
- }
- }
- }
|