light-pkg/myUrl/index.go

43 lines
771 B
Go
Raw Permalink Normal View History

2024-12-18 03:41:30 +08:00
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()
}