init
This commit is contained in:
42
myUrl/index.go
Normal file
42
myUrl/index.go
Normal file
@ -0,0 +1,42 @@
|
||||
package myUrl
|
||||
|
||||
import "net/url"
|
||||
|
||||
type UrlCli struct {
|
||||
url url.URL
|
||||
params url.Values
|
||||
}
|
||||
|
||||
func NewUrlCli(scheme string, host string) *UrlCli {
|
||||
return &UrlCli{url: url.URL{Scheme: scheme, Host: host}, params: url.Values{}}
|
||||
}
|
||||
|
||||
func NewUrlCliWithParse(data string) (*UrlCli, error) {
|
||||
urlObj, err := url.Parse(data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &UrlCli{
|
||||
url: *urlObj,
|
||||
params: urlObj.Query(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (t *UrlCli) Set(m map[string]string) {
|
||||
params := url.Values{}
|
||||
for s, s2 := range m {
|
||||
params.Set(s, s2)
|
||||
}
|
||||
t.params = params
|
||||
}
|
||||
|
||||
func (t *UrlCli) Add(key, value string) *UrlCli {
|
||||
t.params.Set(key, value)
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *UrlCli) String() string {
|
||||
baseURL := t.url
|
||||
baseURL.RawQuery = t.params.Encode()
|
||||
return baseURL.String()
|
||||
}
|
Reference in New Issue
Block a user