...
1
2
3
4
5 package gensupport
6
7 import (
8 "net/http"
9 "net/url"
10
11 "google.golang.org/api/googleapi"
12 "google.golang.org/api/internal"
13 )
14
15
16
17 type URLParams map[string][]string
18
19
20 func (u URLParams) Get(key string) string {
21 vs := u[key]
22 if len(vs) == 0 {
23 return ""
24 }
25 return vs[0]
26 }
27
28
29
30 func (u URLParams) Set(key, value string) {
31 u[key] = []string{value}
32 }
33
34
35
36
37
38 func (u URLParams) SetMulti(key string, values []string) {
39 u[key] = values
40 }
41
42
43
44 func (u URLParams) Encode() string {
45 return url.Values(u).Encode()
46 }
47
48
49
50 func SetOptions(u URLParams, opts ...googleapi.CallOption) {
51 for _, o := range opts {
52 m, ok := o.(googleapi.MultiCallOption)
53 if ok {
54 u.SetMulti(m.GetMulti())
55 continue
56 }
57 u.Set(o.Get())
58 }
59 }
60
61
62
63
64 func SetHeaders(userAgent, contentType string, userHeaders http.Header, keyvals ...string) http.Header {
65 reqHeaders := make(http.Header)
66 reqHeaders.Set("x-goog-api-client", "gl-go/"+GoVersion()+" gdcl/"+internal.Version)
67 for i := 0; i < len(keyvals); i = i + 2 {
68 reqHeaders.Set(keyvals[i], keyvals[i+1])
69 }
70 reqHeaders.Set("User-Agent", userAgent)
71 if contentType != "" {
72 reqHeaders.Set("Content-Type", contentType)
73 }
74 for k, v := range userHeaders {
75 reqHeaders[k] = v
76 }
77 return reqHeaders
78 }
79
View as plain text